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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

CommoAdapter萬能適配器

2019-11-09 14:13:13
字體:
供稿:網(wǎng)友

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

public abstract class CommoAdapter extends BaseAdapter{

/** * 上下文 */PRotected Context context;/** * 數(shù)據(jù)源 */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();}/** * 填充數(shù)據(jù) * * @param holder * @param position */protected abstract void fillData(ViewHouder holder, int position);

` Viewhouder工具類

public class ViewHouder { /** * View容器,用于存放Holer中的View 的SparseArray * 是Android推薦使用的一個(gè)優(yōu)化容器,相當(dāng)于一個(gè)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; } /** * 設(shè)置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; } /** * 設(shè)置EditText 的文本 * * @param viewId * @param text */ public EditText setETText(int viewId, String text) { EditText et = getView(viewId); et.setText(text); return et; } /** * 設(shè)置TextView 的文本 * * @param viewId// * @param text */ public ImageView setIVBg(int viewId, int imgId) { ImageView iv = getView(viewId); iv.setImageResource(imgId); return iv; } /** * 設(shè)置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);


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 古浪县| 沅江市| 康乐县| 修文县| 松溪县| 绵竹市| 高清| 合肥市| 托克逊县| 上高县| 象州县| 伊吾县| 宁都县| 唐海县| 浦北县| 开阳县| 辽宁省| 泰兴市| 吴桥县| 洪泽县| 二连浩特市| 铜川市| 玉龙| 平遥县| 东丰县| 达州市| 桐庐县| 博爱县| 渝中区| 龙山县| 河南省| 长沙市| 白玉县| 新邵县| 昌黎县| 铅山县| 沈丘县| 宁晋县| 清苑县| 文登市| 万安县|