Android安卓万能适配器adpter和viewholder
来源:互联网 发布:淘宝联盟提现的日期 编辑:程序博客网 时间:2024/04/30 11:20
最近北京辞职 准备南下之余 别TMD叫我打撸阿撸 哥要进步 嘛蛋 有空可以来玩一把 如果你是 战争学院 那么请记住 我的ID 恐布分子 求双黑!!1
顺便把主要代码展现出来 展示尊重效果!
写法demo
demo的下载地址
点一下也不会怀孕下载看看也不要积分
public abstract class CommonAdapter<T> extends android.widget.BaseAdapter { protected final Context mContext; protected final int mLayoutId; protected List<T> mItems; public CommonAdapter(Context context) { this(context, -1, null); } public CommonAdapter(Context context, int layoutId) { this(context, layoutId, null); } public CommonAdapter(Context context, int layoutId, List<T> items) { mContext = context; mLayoutId = layoutId; mItems = items == null ? new ArrayList<T>() : new ArrayList<T>(items); } public Context getContext() { return mContext; } @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder = getViewHolder(position, convertView, parent); convert(holder, position, getItem(position)); return holder.getConvertView(); } protected ViewHolder getViewHolder(int position, View convertView, ViewGroup parent) { if (mLayoutId == -1) throw new IllegalArgumentException("mLayoutId == -1"); return ViewHolder.get(mContext, convertView, parent, mLayoutId, position); } protected abstract void convert(ViewHolder holder, int position, T item); @Override public int getCount() { return mItems.size(); } @Override public T getItem(int position) { if (position >= mItems.size()) return null; return mItems.get(position); } public List<T> getItems() { return mItems; } public void setItems(List<T> items) { this.mItems = items; notifyDataSetChanged(); } @Override public long getItemId(int position) { return position; } public void add(T item) { mItems.add(item); notifyDataSetChanged(); } public void addAll(List<T> items) { mItems.addAll(items); notifyDataSetChanged(); } public void addAll(int index, List<T> items) { mItems.addAll(index, items); notifyDataSetChanged(); } public void set(T oldItem, T newItem) { set(mItems.indexOf(oldItem), newItem); } public void set(int index, T item) { mItems.set(index, item); notifyDataSetChanged(); } public void remove(T item) { mItems.remove(item); notifyDataSetChanged(); } public void remove(int index) { mItems.remove(index); notifyDataSetChanged(); } public void replaceAll(List<T> items) { mItems.clear(); mItems.addAll(items); notifyDataSetChanged(); } public boolean contains(T item) { return mItems.contains(item); } /** * Clear data list */ public void clear() { mItems.clear(); notifyDataSetChanged(); }}
public final class ViewHolder { private final Context mContext; private final SparseArray<View> mViews; private final View mConvertView; private final int mPosition; protected ViewHolder(Context context, ViewGroup parent, int layoutId, int position) { mContext = context; mViews = new SparseArray<View>(); mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false); mConvertView.setTag(layoutId, this); mPosition = position; } public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId, int position) { if (convertView == null) return new ViewHolder(context, parent, layoutId, position); return (ViewHolder) convertView.getTag(layoutId); } public <T extends View> T findViewById(int viewId) { return getView(viewId); } @SuppressWarnings("unchecked") 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; } public int getPosition() { return mPosition; } public ViewHolder setText(int viewId, CharSequence text) { TextView view = getView(viewId); if (view != null && text != null) view.setText(text); return this; } public String getText(int viewId) { TextView view = getView(viewId); if (view != null) { return view.getText().toString(); } return ""; } public ViewHolder setTextColor(int viewId, int color) { TextView view = getView(viewId); if (view != null) view.setTextColor(color); return this; } public ViewHolder setTextColorResource(int viewId, int colorRes) { TextView view = getView(viewId); if (view != null) view.setTextColor(mContext.getResources().getColor(colorRes)); return this; } public ViewHolder setBackgroundColor(int viewId, int color) { View view = getView(viewId); if (view != null) view.setBackgroundColor(color); return this; } public ViewHolder setBackgroundResource(int viewId, int resId) { ImageView view = getView(viewId); if (view != null) view.setBackgroundResource(resId); return this; } public ViewHolder setImageDrawable(int viewId, Drawable drawable) { ImageView view = getView(viewId); if (view != null) view.setImageDrawable(drawable); return this; } public ViewHolder setImageResource(int viewId, int imageRes) { ImageView view = getView(viewId); if (view != null) view.setImageResource(imageRes); return this; } public ViewHolder setImageBitmap(int viewId, Bitmap bitmap) { ImageView view = getView(viewId); if (view != null) view.setImageBitmap(bitmap); return this; } public ViewHolder setAlpha(int viewId, float value) { View view = getView(viewId); if (view == null) return this; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { view.setAlpha(value); } else { // Pre-honeycomb hack to set Alpha value AlphaAnimation alpha = new AlphaAnimation(value, value); alpha.setDuration(0); alpha.setFillAfter(true); view.startAnimation(alpha); } return this; } public ViewHolder setVisible(int viewId, boolean visible) { View view = getView(viewId); if (view != null) view.setVisibility(visible ? View.VISIBLE : View.GONE); return this; } public ViewHolder setOnClickListener(int viewId, View.OnClickListener listener) { View view = getView(viewId); if (view != null) view.setOnClickListener(listener); return this; } public ViewHolder setOnLongClickListener(int viewId, View.OnLongClickListener listener) { View view = getView(viewId); if (view != null) view.setOnLongClickListener(listener); return this; } public ViewHolder setTag(int viewId, Object tag) { View view = getView(viewId); if (view != null) view.setTag(tag); return this; } public ViewHolder setTag(int viewId, int key, Object tag) { View view = getView(viewId); if (view != null) view.setTag(key, tag); return this; } public ViewHolder setChecked(int viewId, boolean checked) { Checkable view = (Checkable) getView(viewId); if (view != null) view.setChecked(checked); return this; }}
0 0
- Android安卓万能适配器adpter和viewholder
- 万能适配器CommonAdapter和ViewHolder
- Android万能适配器(一)封装ViewHolder
- Android 通用ViewHolder和适配器
- 属于RecyclerView的万能适配器Adapter和ViewHolder
- 属于RecyclerView的万能适配器Adapter和ViewHolder
- 万能适配器(1) 抽取ViewHolder
- 9.Android 万能ViewHolder
- 万能适配器和万能ViewHolder配合实现ListView列表数据展示
- 万能适配器1 ViewHolder应用于Listview
- ViewHolder baseadatper封装的万能适配器
- android 适配器Adpter的使用总结
- android 适配器Adpter的使用总结
- android 适配器Adpter的使用总结
- android 适配器Adpter的使用总结
- android 适配器Adpter的使用总结
- 偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder
- 偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder
- Loadrunner服务器问题解决之--mdrv.eve进程未中止导致服务器磁盘空间占满
- 自己项目中做的UI布局
- poj 3080
- Linux如何实现开机启动程序详解
- StringBuffer的用法
- Android安卓万能适配器adpter和viewholder
- 极光推送JPush客户端与服务器端的集成
- Web Services 指南之:Web Services 的一些例子
- iOS开发用正则表达式验证身份证,邮箱,手机号等
- 十道海量数据处理面试题
- erlang四大behaviour之四-supervisor(转载)
- 怎么给Unity写一个原生的插件
- 如何自己在Android编写一个Sqlite动态操作软件
- java使用poi解析2007以上的word文档中的表格与图片