Android初級,快取原理的使用
阿新 • • 發佈:2019-01-25
快取原理介紹
快取原理對於程式碼程式設計來說至關重要,但它也並非毫無瑕疵的。
快取原理的優點即在於,它會像一個“扳手”一樣將每一個行佈局、繫結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物件
}