自定义baseAdapter的比较好的一种方法
2016-05-18 19:43
337 查看
在网上学习到一种定义baseApdater的一种比较优美的方法,加上最近自己也连续用到几次这个方法,现在归纳整理一下,提升学习:
!!!!!!! 特别注明:该方法不是本人设计,而是本人在一个视频<android必学-baseadapter的使用与优化>>
程序员沟通最有效的语言莫过于代码和注释:
以下是自己的写的一个类
public class CommentAdapter extends BaseAdapter{
private List<CommentBean> data; //数据源
private LayoutInflater inflater;
// 构造函数
public CommentAdapter(Context context,List<CommentBean> list){
data=list; inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return data.size(); //返回数据的大小
}
@Override
public Object getItem(int position) {
// TODO 自动生成的方法存根
return data.get(position); //返回某个特定的数据
}
@Override
public long getItemId(int position) {
// TODO 自动生成的方法存根
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO 自动生成的方法存根
ViewHolder viewHolder;
if(convertView==null){
//若是converview没有缓存过就新建一个
convertView=inflater.inflate(R.layout.comment, null);
//viewHolder也是同理,
viewHolder=new ViewHolder();
viewHolder.comment_main=(TextView) convertView.findViewById(R.id.commentOfMain);
viewHolder.nickName=(TextView) convertView.findViewById(R.id.textView2);
viewHolder.date=(TextView) convertView.findViewById(R.id.textView3);
viewHolder.loc=(TextView) convertView.findViewById(R.id.textView4);
// 标注viewholder,下次方便可以直接取出
convertView.setTag(viewHolder);
}else{
//缓存过就直接取出viewholder
viewHolder=(ViewHolder) convertView.getTag();
}
//对于viewholder的负责的每一个子view赋值
viewHolder.comment_main.setText(data.get(position).getComment());
viewHolder.nickName.setText(data.get(position).getNickName());
viewHolder.date.setText(data.get(position).getDate());
viewHolder.loc.setText(data.get(position).getLoc());
//返回converview
return convertView;
}
private class ViewHolder{
public TextView comment_main;
public TextView nickName;
public TextView date;
public TextView loc;
}
}
!!!!!!! 特别注明:该方法不是本人设计,而是本人在一个视频<android必学-baseadapter的使用与优化>>
程序员沟通最有效的语言莫过于代码和注释:
以下是自己的写的一个类
public class CommentAdapter extends BaseAdapter{
private List<CommentBean> data; //数据源
private LayoutInflater inflater;
// 构造函数
public CommentAdapter(Context context,List<CommentBean> list){
data=list; inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return data.size(); //返回数据的大小
}
@Override
public Object getItem(int position) {
// TODO 自动生成的方法存根
return data.get(position); //返回某个特定的数据
}
@Override
public long getItemId(int position) {
// TODO 自动生成的方法存根
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO 自动生成的方法存根
ViewHolder viewHolder;
if(convertView==null){
//若是converview没有缓存过就新建一个
convertView=inflater.inflate(R.layout.comment, null);
//viewHolder也是同理,
viewHolder=new ViewHolder();
viewHolder.comment_main=(TextView) convertView.findViewById(R.id.commentOfMain);
viewHolder.nickName=(TextView) convertView.findViewById(R.id.textView2);
viewHolder.date=(TextView) convertView.findViewById(R.id.textView3);
viewHolder.loc=(TextView) convertView.findViewById(R.id.textView4);
// 标注viewholder,下次方便可以直接取出
convertView.setTag(viewHolder);
}else{
//缓存过就直接取出viewholder
viewHolder=(ViewHolder) convertView.getTag();
}
//对于viewholder的负责的每一个子view赋值
viewHolder.comment_main.setText(data.get(position).getComment());
viewHolder.nickName.setText(data.get(position).getNickName());
viewHolder.date.setText(data.get(position).getDate());
viewHolder.loc.setText(data.get(position).getLoc());
//返回converview
return convertView;
}
private class ViewHolder{
public TextView comment_main;
public TextView nickName;
public TextView date;
public TextView loc;
}
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories