日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術 > 通用Adapter與ListView滾動時不加載圖片的封裝

通用Adapter與ListView滾動時不加載圖片的封裝

來源:程序員人生   發(fā)布時間:2015-06-12 08:07:10 閱讀次數(shù):2928次

本文原創(chuàng),轉(zhuǎn)載請注明鏈接:http://blog.kymjs.com/

在Android開發(fā)中寫Adapter是1件非常麻煩的事情,枯燥重復,卻又不能不去做。 對Adapter1般都繼承BaseAdapter復寫幾個方法,getView里面使用ViewHolder存儲,其實大部份的代碼都是類似的。那末本文就帶大家1起做1次將Adapter封裝成1個通用的Adapter。

關于本文的完全Demo,可以參考KJFrameForAndroid開發(fā)框架2.2版本中封裝的實例,KJAdapter和AdapterHolder這兩個類。
那末接下來我們進入正文,下面這個類似的代碼應當是我們看的最多的:

public class EmojiGridAdapter extends BaseAdapter { private List<Emojicon> datas; private final Context cxt; public EmojiGridAdapter(Context cxt, List<Emojicon> datas) { this.cxt = cxt; if (datas == null) { datas = new ArrayList<Emojicon>(0); } this.datas = datas; } public void refresh(List<Emojicon> datas) { if (datas == null) { datas = new ArrayList<Emojicon>(0); } this.datas = datas; notifyDataSetChanged(); } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; } private static class ViewHolder { ImageView image; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); ...... convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.image.setImageResource(datas.get(position).getResId()); return convertView; }}


初步抽取

其中BaseAdapter的4個方法必須寫,但是基本上前3個都是1模1樣的, 所以可使用泛型,寫1個基類出來,把數(shù)據(jù)封裝到基類里面,只需要構(gòu)造方法傳入就好了

public class KJBaseAdapter<T> extends BaseAdapter { List<T> datas; KJBaseAdapter(Context cxt,List<T> datas){ ...... } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; }}

然后是我們唯1需要動腦的getView()方法,首先是判斷converView是不是空,然后載入item布局,然后ViewHolder挨個初始化控件,然后通過tag保存holder,最后設置View的顯示。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产成人久久精品 | 久久久网站| 亚洲九九九 | 国产成人网 | 中文成人在线 | 亚洲精品66| 玖玖在线免费视频 | 最近中文字幕视频在线观看 | 国产精品久久久av | 电影天堂网 | 色图综合| 国产精品视频99 | 亚洲欧美bt | 久久精品一级 | 久久精彩| 在线一二区 | 久久久国产精品一区 | 好吊视频一区二区三区 | 国产午夜精品一区二区三区嫩草 | 久久精品国产一区二区三区 | 日韩国产精品视频 | 国产精品国产三级国产 | 日本午夜视频 | 日本大片免a费观看视频的特点 | 亚洲色图第一区 | 亚洲国产精品一区二区三区 | 久久久久久成人 | 成人自拍视频 | 久久视频免费观看 | 中文字幕一区在线观看视频 | 亚洲播播| 99在线精品免费视频 | 男生电影天堂 | 成人91看片 | 二区视频在线 | 在线看片日韩 | 中文字幕日韩高清 | 久久影片| 97精品国产97久久久久久粉红 | 国产成人精品白浆久久69 | www.久久久|