Android ListView封装类
来源:互联网 发布:网络推广员有用吗 编辑:程序博客网 时间:2024/06/01 10:19
由SimpleAdapter启发写的封装类,使用的时候只需修改ItemInfo和ViewHolder 的属性,以及ViewHolder 的setItem方法即可
//listitem数据类,用于填充到listitem中的数据 private class ItemInfo{ public String name; public ItemInfo(String name){ this.name=name; } } //与listitem内的控件一一对应 private class ViewHolder { public TextView textview; public Button button; /**初始化控件*/ public ViewHolder(View convertView){ button =(Button) convertView.findViewById(R.id.button); textview = (TextView) convertView.findViewById(R.id.textView); } /**设置控件数据*/ public void setItem(ItemInfo itemInfo){ textview.setText(itemInfo.name); } } // 重写adapter private class ListItemAdapter extends BaseAdapter { private ViewHolder holder; private List<ItemInfo> itemInfo; //ListView中要显示的数据 private Context context; private int ItemLayoutID;//R.layout.xxxx_listitem public ListItemAdapter(Context context,int ItemLayoutID,List<ItemInfo> item) { this.context=context; this.ItemLayoutID=ItemLayoutID; this.itemInfo=item; } @Override public int getCount() { return itemInfo.size(); } @Override public Object getItem(int arg0) { return itemInfo.get(arg0); } @Override public long getItemId(int arg0) { return arg0; } //重写getView(convertView重用) @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(context).inflate(ItemLayoutID, null); holder = new ViewHolder(convertView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.setItem(itemInfo.get(position)); return convertView; } }
调用方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview=(ListView) this.findViewById(R.id.listView1); List<ItemInfo> list= new ArrayList<ItemInfo>(); list.add(new ItemInfo("111")); list.add(new ItemInfo("222")); list.add(new ItemInfo("333")); ListItemAdapter adapter = new ListItemAdapter(this,R.layout.list_item,list); listview.setAdapter(adapter); }
0 0
- Android ListView封装类
- Android ListView封装
- Android---封装ListView的Adapter
- ListView之ViewHolder类封装
- Android之ListView的高级封装!
- Android ListView,GridView的Adapter封装
- ListView Adapter 封装 打造Android 万能适配器
- react-native 在android封装原生listView
- ListView封装
- ListView封装
- Android-对ListView的Adapter的一种简单封装
- 分享下android 一个Listview下拉刷新的二次封装
- Android 对ListView和RecyclerView的两个BaseAdapter封装分享
- Android ListView封装(代码优化):抽取方法共性,封装 BaseAdapter 和 ViewHolder
- Android 常用工具类封装
- Android 常用工具类封装
- Android Log类封装
- Android 封装SharedPreferences类
- 最短排序
- PHP自学no00010特殊数据类型之空值
- HTML简介
- Androd调试
- iOS面试之递归算法博主菜鸟历程第一卷
- Android ListView封装类
- caffe——net.cpp——init()
- Kd-Tree算法原理和开源实现代码
- Volley直接设置POST包体
- v$sql,v$sqlarea,v$sqltext有什么区别
- MySQL学习4:Windows 64位操作系统下使用MySQL
- iOS - 百度推送
- Android N开发 你需要知道的一切
- 左右最值最大差