Android-打造万能适配器
来源:互联网 发布:vb编程从入门到精通 编辑:程序博客网 时间:2024/04/30 06:50
使用方式
public class TestAdapter extends CommonBaseAdapter<String> { public TestAdapter(Context context, List<String> list) { super(context, list); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder.get(context, convertView, parent, R.layout.search_history_list_item); // 方法一 holder.setTextForTextView(R.id.tv_content, list.get(position)); // 方法二 TextView textView = holder.getView(R.id.tv_content); textView.setText(list.get(position)); return holder.getConvertView(); }}
- CommonAdapter复用多数重复的代码
package com.core.common.adapter;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;/** * base adapter * * @author river * * @param <T> */public abstract class CommonAdapter<T> extends BaseAdapter { protected LayoutInflater mInflater; protected List<T> mList; protected Context context; public CommonAdapter(Context context, List<T> list) { this.mInflater = LayoutInflater.from(context); this.mList = list; this.context = context; } @Override public int getCount() { return mList.size(); } @Override public T getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public abstract View getView(int position, View convertView, ViewGroup parent);}
- 万能的ViewHolder
package com.core.common.adapter;import android.content.Context;import android.graphics.Bitmap;import android.util.SparseArray;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;/** * 通用的ViewHolder * * @author river * */public class ViewHolder { private SparseArray<View> mViews; private View mConvertView; private ViewHolder(Context context, ViewGroup parent, int layoutId) { this.mViews = new SparseArray<View>(); this.mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false); this.mConvertView.setTag(this); } public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId) { ViewHolder viewHolder = null; if (convertView == null) { viewHolder = new ViewHolder(context, parent, layoutId); } else { viewHolder = (ViewHolder) convertView.getTag(); } return viewHolder; } /** * 通过id获取组件 * 注意不要将组件声明到全局,否则永远获取的是最后一个组件 * @param viewId * @return */ @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 this.mConvertView; } public ViewHolder setTextForTextView(int viewId, String text) { TextView tv = getView(viewId); tv.setText(text); return this; } public ViewHolder setImageForImageView(int viewId, int resId) { ImageView image = getView(viewId); image.setImageResource(resId); return this; } public ViewHolder setImageForImageView(int viewId, Bitmap bitmap) { ImageView image = getView(viewId); image.setImageBitmap(bitmap); return this; }}
0 0
- Android-打造万能适配器
- Android 打造万能适配器
- android打造万能适配器
- Android打造ListView万能适配器
- android:打造万能通用适配器
- Android打造万能适配器--RecyclerView
- android打造万能的适配器
- 打造Android万能适配器Adapter
- Android:打造万能通用适配器
- 打造万能的android ListView GridView 适配器
- Android 打造万能的ListView GridView 适配器
- android 打造万能的ListView GridView 适配器
- Android 打造万能的ListView GridView 适配器
- Android打造listview万能适配器(上)
- Android打造listview万能适配器(下)
- Android打造ListView和GridView万能适配器
- ListView Adapter 封装 打造Android 万能适配器
- Android之打造ListView的万能适配器
- shared_ptr
- 模拟新浪微博-随便看看
- 线程总结
- JS面向对象学习笔记(三)
- HTTPConnection调用WebService接口
- Android-打造万能适配器
- android4.0自定义锁屏总结 Home button disable in Android4.0.3 应用层解决Home button disable的问题
- int型数据逆置
- linux下cp命令遇到的小问题
- 凌阳16位单片机之用时基中断定时
- FFMpeg处理RTMP流的总结
- HDFS上读写数据的流程解释
- ELF文件的加载和动态链接过程
- VS2013中安装配置和使用Boost库