ListView、GrideView通用适配器
来源:互联网 发布:苹果mac破解软件下载 编辑:程序博客网 时间:2024/05/19 04:51
1、baseAdapter
public abstract class BaseCommonAdapter<T> extends BaseAdapter { protected LayoutInflater mInflater; protected Context mContext; protected List<T> mDatas; public BaseCommonAdapter(Context context, List<T> list) { this.mInflater = LayoutInflater.from(context); this.mContext = context; this.mDatas = list; } @Override public int getCount() { if(mDatas != null){ return mDatas.size(); } return 0; } @Override public Object getItem(int position) { if(mDatas != null){ return mDatas.get(position); } return null; } @Override public long getItemId(int position) { return position; } @Override public abstract View getView(int position, View convertView, ViewGroup parent);}
2、ViewHolder使用于Adapter缓存
public class ViewHolder { private SparseArray<View> mViews; private int mPosition; private View mConvertView; public ViewHolder(Context context, ViewGroup parent, int layoutId, int position) { mViews = new SparseArray<View>(); this.mPosition = position; this.mConvertView = LayoutInflater.from(context).inflate(layoutId,parent, false); mConvertView.setTag(this); } /** * 得到一个ViewHolder对象 * * @param context * @param parent * @param layoutId * @return */ public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId, int position) { if (convertView == null) { return new ViewHolder(context, parent, layoutId, position); } else { ViewHolder holder = (ViewHolder) convertView.getTag(); holder.mPosition = position; return holder; } } /** * 通过控件的Id获取对应的控件,如果没有则加入views * * @param viewId * @return */ public <T extends View> T getView(int viewId) { View view = mViews.get(viewId); if (view == null) { view = mConvertView.findViewById(viewId); mViews.put(viewId, view); } return (T) view; } public View getConvertView() { return mConvertView; } /** * 为TextView设置值 * * @param viewId * @param text * @return */ public ViewHolder setText(int viewId, String text) { TextView tv = getView(viewId); tv.setText(text); return this; } /** * 为TextView设置值 * * @param viewId * @return */ public ViewHolder setTextColor(int viewId, int colorId){ TextView tv = getView(viewId); tv.setTextColor(colorId); return this; } /** * 为ImageView 设置值 * * @param viewId * @param resId * @return */ public ViewHolder setImageResource(int viewId, int resId) { ImageView iv = getView(viewId); iv.setImageResource(resId); return this; } /** * 为TextView设置背景资源 * * @param viewId * @param resId * @return */ public ViewHolder setBackground(int viewId, int resId) { TextView tv = getView(viewId); tv.setBackgroundResource(resId); return this; } /** * 为ImageView设置值 * * @param viewId * @param bm * @return */ public ViewHolder setImageBitmap(int viewId, Bitmap bm) { ImageView iv = getView(viewId); iv.setImageBitmap(bm); return this; } /** * 获取项中的图片按钮 * * @param viewId * @return */ public ImageView getImageView(int viewId) { return getView(viewId); } /** * 获取项中的按钮 * * @param viewId * @return */ public Button getButton(int viewId) { return getView(viewId); }}
3、调用方法
public class MenuAdapter extends BaseCommonAdapter<Menu> { public MenuAdapter(Context context, List<Menu> list) { super(context, list); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = new ViewHolder(mContext, parent, R.layout.item_gv_menu, position); holder.setText(R.id.item_gv_menu_text_tv, mDatas.get(position).getItem()); holder.setImageResource(R.id.item_gv_menu_text_iv, mDatas.get(position).getId()); return holder.getConvertView(); }}
阅读全文
0 0
- ListView、GrideView通用适配器
- ListView通用适配器
- Android Listview通用适配器
- listview、gridview通用适配器
- ListView通用适配器
- ListView 通用适配器
- listview通用适配器和RecyclerView通用适配器
- 【Android笔记】 通用ListView适配器
- 通用的ListView GridView适配器
- Android 通用ListView、GridView适配器
- Android Listview通用适配器BaseCommAdapter
- ViewPager+ListView+grideView
- Android ListView的通用适配器Adapter
- Android 开发技巧-Listview通用适配器BaseCommAdapter
- 编写通用的Listview、gridview的适配器
- ScrollView 内嵌套 ListVIew/GrideView
- ListView与ListVIew或者GrideView嵌套问题
- GrideView
- 裁剪libiconv字符转码库
- 面试题05:Jaden Casing Strings
- 300.4 加密(利用位运算^)
- 026、接口
- SQL Server 2008中的代码安全(六):对称密钥加密
- ListView、GrideView通用适配器
- Cadence Design Systems Sigrity 2017 HF003 2DVD
- LoRaWAN协议(一)
- 时间格式化
- 工程师软技能5:生产力
- FaceSDK6.2注册码破解版下载
- Linux ZRAM的简单介绍
- DataBinding基本使用(1)
- Robot Framework+Appium案例分享二: Camera测试