国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

CommoAdapter萬能適配器

2019-11-09 15:14:20
字體:
來源:轉載
供稿:網友

在android中我們經常用到adapter適配器,今天在網上看到有許多人都寫得有,自己參考了一些,現在自己也寫出來放在自己的博客中,方便以后回顧 代碼:`

public abstract class CommoAdapter extends BaseAdapter{

/** * 上下文 */PRotected Context context;/** * 數據源 */protected List<T> listDatas;/** * Item布局ID */protected int layoutId;public CommoAdapter(Context context, List<T> listDatas, int layoutId){ this.context=context; this.listDatas=listDatas; this.layoutId=layoutId;}@Overridepublic int getCount() { return listDatas==null?0:listDatas.size();}@Overridepublic Object getItem(int position) { return position;}@Overridepublic long getItemId(int position) { return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) { ViewHouder holder = ViewHouder.getViewHolder(context, convertView, parent, layoutId); fillData(holder, position); return holder.getMConvertView();}/** * 填充數據 * * @param holder * @param position */protected abstract void fillData(ViewHouder holder, int position);

` Viewhouder工具類

public class ViewHouder { /** * View容器,用于存放Holer中的View 的SparseArray * 是Android推薦使用的一個優化容器,相當于一個Map<integer,View> */ private SparseArray<View> mViews; /** * Item布局View convertView */ private View mConvertView; public ViewHouder(Context context, ViewGroup parent, int layoutId) { mViews = new SparseArray<View>(); mConvertView = LayoutInflater.from(context).inflate(layoutId, null); mConvertView.setTag(this); } /** * 獲取ViewHolder * * @param context * 上下文 * @param convertView * @param parent * @param layoutId * 布局layout Id * @param * @return */ public static ViewHouder getViewHolder(Context context, View convertView, ViewGroup parent, int layoutId) { if (convertView == null) return new ViewHouder(context, parent, layoutId); return (ViewHouder) convertView.getTag(); } /** * * 獲取Holder中的ItemView * * @param viewId * @return */ @SuppressWarnings("unchecked") public <T extends View> T getView(int viewId) { View item = mViews.get(viewId); if (item == null) { item = mConvertView.findViewById(viewId); mViews.put(viewId, item); } return (T) item; } /** * 設置TextView 的文本 * * @param viewId * @param text */ public TextView setTVText(int viewId, String text) { TextView tv = getView(viewId); tv.setText(text); return tv; } public TextView setsetBackground(int viewId,int color){ TextView tv=getView(viewId); return tv; } /** * 設置EditText 的文本 * * @param viewId * @param text */ public EditText setETText(int viewId, String text) { EditText et = getView(viewId); et.setText(text); return et; } /** * 設置TextView 的文本 * * @param viewId// * @param text */ public ImageView setIVBg(int viewId, int imgId) { ImageView iv = getView(viewId); iv.setImageResource(imgId); return iv; } /** * 設置TextView 的文本 * * @param viewId * @param text */ public void setTextView(int viewId, String text) { TextView tv = getView(viewId); tv.setText(text); } /** * 獲取convertView * * @return */ public View getMConvertView() { return mConvertView; }}

自己的adapter,列如名字叫MessgeAdapter

public class MessgeAdapter extends CommoAdapter<String>{ public MessgeAdapter(Context context, List<String> listDatas, int layoutId) { super(context, listDatas, layoutId); } @Override protected void fillData(ViewHouder holder, int position) { TextView tvMessgeTitle=holder.getView(R.id.tvMessgeTitle); tvMessgeTime.setText(TimeFormat.DateFormat(listDatas.get(position))); }}

在Activity中使用 List list; ListView listview;

MessgeAdapter adapter=new MessgeAdapter (this,list,R.layout.item_messge); listview.setadapter(adapter);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸市| 马关县| 老河口市| 镶黄旗| 偏关县| 泸州市| 翁源县| 剑川县| 广南县| 鞍山市| 岚皋县| 仁化县| 酉阳| 三穗县| 彭水| 桐柏县| 阿拉善右旗| 定襄县| 武义县| 自治县| 屯昌县| 邵东县| 景洪市| 徐州市| 莒南县| 南郑县| 大田县| 凉山| 公安县| 通河县| 婺源县| 德州市| 确山县| 怀仁县| 甘洛县| 东兰县| 石泉县| 辽源市| 辽中县| 南涧| 本溪|