1. 程式人生 > >Android初級,快取原理的使用

Android初級,快取原理的使用

快取原理介紹

快取原理對於程式碼程式設計來說至關重要,但它也並非毫無瑕疵的。
快取原理的優點即在於,它會像一個“扳手”一樣將每一個行佈局、繫結ID的操作都在一個方法中執行,簡化了程式設計師的操作程式;
而它的缺點也在此,如果資料過多,則會導致程式碼中的資料與實際顯示的資料有出入

整體思路:

  • 建立一個內部類,此處取名為ViewHolder
  • 在Activity繼承了BaseAdapter後修改getView()方法,在此處使用快取原理
  • 建立行佈局檔案
  • 對viewHolder進行例項化
  • 分別為對控制元件的繫結ID
  • 建立行佈局檢視
  • 切記修改返回值,使之指向自定義的view物件

程式碼展現

1.首先建立一個內部類,取名為ViewHolder,用於對控制元件的宣告;

 class ViewHolder {
        TextView titleTv;
        TextView artistTv;
        TextView albumTv;
        ImageView albumBmp;
        View playingImg;
    }

2.其次對Viewholder類的呼叫

 @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        View v ; //宣告 View及ViewHolder物件
ViewHolder viewHolder; if (view == null) //對view進行判斷,判斷是否有“扳手”{ v=LayoutInflater.from(context).inflate(R.layout.musci_item_layout,null);//建立行佈局檔案 viewHolder = new ViewHolder(); //對viewHolder進行例項化 viewHolder.titleTv = v.findViewById(R.id.simple_name_Tv); //以下分別為對控制元件的繫結ID
viewHolder.albumTv = v.findViewById(R.id.simple_edit_Tv); viewHolder.artistTv = v.findViewById(R.id.simple_edit_Tv); viewHolder.albumBmp = v.findViewById(R.id.simple_cover_Iv); viewHolder.playingImg = v.findViewById(R.id.list_column_v); v.setTag(viewHolder); } else { v = view; //建立行佈局檢視 viewHolder = (ViewHolder) v.getTag(); } return view;//切記修改返回值,使之指向自定義的view物件 }