我的自定义Adapter
来源:互联网 发布:漫步者淘宝旗舰店 编辑:程序博客网 时间:2024/06/09 18:36
public abstract class AbstractBaseAdapter<T> extends BaseAdapter {
public LayoutInflater inflater;
private Context context;
public List<T> mList;
protected int mInflaterId;
BaseViewHolder baseViewHolder;
public BaseViewHolder getBaseViewHolder() {
if(this.baseViewHolder==null){
return null;
}
return baseViewHolder;
}
public void setBaseViewHolder(BaseViewHolder baseViewHolder) {
this.baseViewHolder = baseViewHolder;
}
public AbstractBaseAdapter(Context context, List<T> mList, int mInflaterId) {
this.context = context;
this.mList = mList;
this.mInflaterId = mInflaterId;
inflater =LayoutInflater.from(context);
}
public AbstractBaseAdapter(Context context, List<T> mList, int mInflaterId,
BaseViewHolder baseViewHolder) {
this.context = context;
this.mList = mList;
this.mInflaterId = mInflaterId;
this.baseViewHolder = baseViewHolder;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mList == null ? 0 : mList.size();
}
@Override
public T getItem(int position) {
// TODO Auto-generated method stub
return mList == null ? null : mList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
BaseViewHolder holder = null;
View view = convertView;
if (view == null) {
holder = baseViewHolder.getInstance();
view = inflater.inflate(mInflaterId, null);
holder.bindView(view);
view.setTag(holder);
} else {
holder = (BaseViewHolder) view.getTag();
}
holder.setData(position);
return view;
}
interface BaseViewHolder {
/**
* 得到Viewholder的实例
*
* @return
* @modifiedTime 下午4:14:47
* @author lzt
*/
public BaseViewHolder getInstance();
/**
* 绑定View
*
* @param v
* @modifiedTime 下午4:15:00
* @author lzt
*/
public void bindView(View v);
/**
* 设置数据
*
* @param pos
* @modifiedTime 下午4:15:05
* @author lzt
*/
public void setData(int pos);
}
}package com.example.mylistview.adapter;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.example.mylistview.R;
import com.example.mylistview.ViewModel;
public class MyBaseAdapter extends AbstractBaseAdapter {
public MyBaseAdapter(Context context, List mList, int layoutId) {
super(context, mList, layoutId);
super.setBaseViewHolder(new ViewHolder());
}
class ViewHolder implements BaseViewHolder {
public TextView textView;
public CheckBox checkBox;
ViewHolder instance = null;
@Override
public BaseViewHolder getInstance() {
// TODO Auto-generated method stub
if (instance == null) {
synchronized (ViewHolder.class) {
if (instance == null) {
instance = new ViewHolder();
}
}
}
return instance;
}
@Override
public void bindView(View v) {
// TODO Auto-generated method stub
textView = (TextView) v.findViewById(R.id.textView1);
checkBox = (CheckBox) v.findViewById(R.id.checkBox1);
}
@Override
public void setData(int pos) {
textView.setText(((ViewModel) mList.get(pos)).getText());
checkBox.setChecked(((ViewModel) mList.get(pos)).isCheck());
}
}
}
public LayoutInflater inflater;
private Context context;
public List<T> mList;
protected int mInflaterId;
BaseViewHolder baseViewHolder;
public BaseViewHolder getBaseViewHolder() {
if(this.baseViewHolder==null){
return null;
}
return baseViewHolder;
}
public void setBaseViewHolder(BaseViewHolder baseViewHolder) {
this.baseViewHolder = baseViewHolder;
}
public AbstractBaseAdapter(Context context, List<T> mList, int mInflaterId) {
this.context = context;
this.mList = mList;
this.mInflaterId = mInflaterId;
inflater =LayoutInflater.from(context);
}
public AbstractBaseAdapter(Context context, List<T> mList, int mInflaterId,
BaseViewHolder baseViewHolder) {
this.context = context;
this.mList = mList;
this.mInflaterId = mInflaterId;
this.baseViewHolder = baseViewHolder;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mList == null ? 0 : mList.size();
}
@Override
public T getItem(int position) {
// TODO Auto-generated method stub
return mList == null ? null : mList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
BaseViewHolder holder = null;
View view = convertView;
if (view == null) {
holder = baseViewHolder.getInstance();
view = inflater.inflate(mInflaterId, null);
holder.bindView(view);
view.setTag(holder);
} else {
holder = (BaseViewHolder) view.getTag();
}
holder.setData(position);
return view;
}
interface BaseViewHolder {
/**
* 得到Viewholder的实例
*
* @return
* @modifiedTime 下午4:14:47
* @author lzt
*/
public BaseViewHolder getInstance();
/**
* 绑定View
*
* @param v
* @modifiedTime 下午4:15:00
* @author lzt
*/
public void bindView(View v);
/**
* 设置数据
*
* @param pos
* @modifiedTime 下午4:15:05
* @author lzt
*/
public void setData(int pos);
}
}package com.example.mylistview.adapter;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.example.mylistview.R;
import com.example.mylistview.ViewModel;
public class MyBaseAdapter extends AbstractBaseAdapter {
public MyBaseAdapter(Context context, List mList, int layoutId) {
super(context, mList, layoutId);
super.setBaseViewHolder(new ViewHolder());
}
class ViewHolder implements BaseViewHolder {
public TextView textView;
public CheckBox checkBox;
ViewHolder instance = null;
@Override
public BaseViewHolder getInstance() {
// TODO Auto-generated method stub
if (instance == null) {
synchronized (ViewHolder.class) {
if (instance == null) {
instance = new ViewHolder();
}
}
}
return instance;
}
@Override
public void bindView(View v) {
// TODO Auto-generated method stub
textView = (TextView) v.findViewById(R.id.textView1);
checkBox = (CheckBox) v.findViewById(R.id.checkBox1);
}
@Override
public void setData(int pos) {
textView.setText(((ViewModel) mList.get(pos)).getText());
checkBox.setChecked(((ViewModel) mList.get(pos)).isCheck());
}
}
}
0 0
- 我的自定义Adapter
- 自定义ListView的Adapter
- 自定义Adapter的心得
- 自定义Adapter的ListView
- 自定义listview的adapter
- Listview的自定义Adapter
- 自定义Adapter的使用
- 自定义的Adapter用法
- 自定义adapter的listview
- Adapter适配器的自定义
- 自定义ListView的Adapter
- 自定义的View的Adapter
- ListView中Adapter的自定义
- android 自定义Adapter的心得
- Android 自定义Adapter的Listview
- 自定义ListView使用的Adapter
- Android 自定义Adapter的ListView
- spinner使用自定义的Adapter
- css学习小结
- OS开发拓展篇—音频处理(音乐播放器1)
- c++ vector
- Network layers and protocols
- #定位系统性能瓶颈# strace & ltrace
- 我的自定义Adapter
- GIT学习链接
- java下载文件名中带有中文字符乱码的处理
- Android环境在C代码中使用logcat获取log
- Hyper-V 高可用性 (添加及配置群集)
- Android onTouch事件与手势操作
- chapter15test3
- 97.Interleaving String (二维动态规划,没想明白)
- GIT学习链接