Android ListView 自定义 Adapter
自定义Adapter类
public class ListViewAdapter extends BaseAdapter { private static final String TAG = MainActivity.class.getName(); private Context context; // 运行上下文 private List<Map<String, Object>> listItems; // 商品信息集合 private LayoutInflater listContainer; // 视图容器 public final class ListItemView { // 自定义控件集合 public ImageView image_status; public TextView text_storage; public TextView text_device; public TextView text_temperature; public TextView text_humidity; public TextView text_updatetime; } public ListViewAdapter(Context context, List<Map<String, Object>> listItems) { this.context = context; this.listContainer = LayoutInflater.from(this.context); // 创建视图容器并设置上下文 this.listItems = listItems; } @Override public int getCount() { // TODO Auto-generated method stub Log.i(TAG, "getCount:" + listItems.size()); return listItems.size();//获取数量 } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @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 Log.i(TAG, "getView"); // 自定义视图 ListItemView listItemView = null; if (convertView == null) { listItemView = new ListItemView(); // 获取list_item布局文件的视图 convertView = listContainer.inflate(R.layout.list_item, null); listItemView.image_status = (ImageView) convertView .findViewById(R.id.item_image_status); listItemView.text_storage = (TextView) convertView .findViewById(R.id.item_text_storage); listItemView.text_device = (TextView) convertView .findViewById(R.id.item_text_device); listItemView.text_temperature = (TextView) convertView .findViewById(R.id.item_text_temperature); listItemView.text_humidity = (TextView) convertView .findViewById(R.id.item_text_humidity); listItemView.text_updatetime = (TextView) convertView .findViewById(R.id.item_text_updatetime); // 设置文字和图片 listItemView.image_status.setBackgroundResource((Integer) listItems .get(position).get("image")); listItemView.text_storage.setText((String) listItems.get(position) .get("storage")); listItemView.text_device.setText((String) listItems.get(position) .get("device")); listItemView.text_temperature.setText((String) listItems.get( position).get("temperature")); listItemView.text_humidity.setText((String) listItems.get(position) .get("humidity")); listItemView.text_updatetime.setText((String) listItems.get( position).get("updatetime")); convertView.setTag(listItemView); } else { listItemView = (ListItemView) convertView.getTag(); } return convertView; } }
自定义布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:id="@+id/item_image_status" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item_text_storage" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item_text_device" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item_text_temperature" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item_text_humidity" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/item_text_updatetime" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
调用自定义Adapter方法
private void initListView() { data_listview = (ListView) findViewById(R.id.data_listview); listItems = getListItems(); listadapter = new ListViewAdapter(this, listItems); Log.i(TAG, "setAdapter"); data_listview.setAdapter(listadapter); } private List<Map<String, Object>> getListItems() { List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(); for (int i = 0; i < 10; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("image", R.drawable.ic_logo); map.put("storage", "仓库"); map.put("device", "设备"); map.put("temperature", "温度"); map.put("humidity", "湿度"); map.put("updatetime", "上传时间"); listItems.add(map); } return listItems; }
Android ListView 自定义 Adapter的更多相关文章
- Android ListView自定义Adapter使用误区
参考博客:BaseAdapter中重写getview的心得以及发现convertView回收的机制 使用自定义的BaseAdapter实现LIstView的展示 由于Recycler(反复循环器)的机 ...
- [Android] Android RecycleView和ListView 自定义Adapter封装类
在网上查看了很多对应 Android RecycleView和ListView 自定义Adapter封装类 的文章,主要存在几个问题: 一).网上代码一大抄,复制来复制去,大部分都运行不起来,或者 格 ...
- Android listview与adapter用法(BaseAdapter + getView)
Android listview与adapter用法http://www.cnblogs.com/zhengbeibei/archive/2013/05/14/3078805.html package ...
- Android学习----自定义Adapter实现ListView
前言: 对于ListView而言,自定义的Adapter对于显示复杂的界面有很大的灵活性 .使用自定义的Adapter需要继承BaseAdapter,然后重写getCount(),getView(), ...
- Android listview与adapter用法
listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
- 【转】Android listview与adapter用法
一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...
- 【转】Android之自定义Adapter的ListView
http://www.cnblogs.com/topcoderliu/archive/2011/05/07/2039862.html 在开发中,我们经常使用到ListView这个控件.Android的 ...
- Android之自定义Adapter的ListView
ListView的创建,一般要具备两大元素: 1)数据集,即要映射的字符串.图片信息之类. 2)适配器,实现把要映射的字符串.图片信息映射成视图(如Textview.Image等组件),再添加到Lis ...
- Android ListView 和 ***Adapter 从本地/网络获取歌曲列表
本文内容 环境 项目结构 测试数据 演示 1:SimpleAdapter 演示 2:BaseAdapter 演示 3:CustomLazyList 演示 4:CustomLazyCompleteLis ...
随机推荐
- 服务器文件系统一定要用NTFS格式。
网络中心通过ADSL接入Internet(固定的IP地址), 网站服务通过端口映射放到了内网的两台计算机上,一台IP地址为122.9.6.1,提供Web.FTP.POP3与SMTP服务:另一台IP地址 ...
- 根据BIOS信息修改主机名
Dell: Rename-Computer -NewName ("CNHZPD-" + (Get-WmiObject -class win32_Bios).SerialNumber ...
- json格式转换成Map的应用
jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...
- FastDFS 安装
FastDFS(centerOs) 安装包:FastDFS_v5.07.tar libfastcommon-master.zip(是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库 ...
- 投芯片,现在要n+1模式
给坚持理想的屌丝点个赞.投芯片,现在要n+1模式,n个小项目+一个大项目.团队是基础,屌丝创业要以营利为先导,先要短快,同时要有并行的大项目支撑.小项目赚的钱先解决面包问题,同时为大项目锻炼队伍积累经 ...
- 让Win8自动登录免输入密码的小技巧
按Win+R键,输出“netplwiz”,单击“确定”,弹出“用户帐户”窗口.将第一个画框上的勾选去掉——应用——弹出自动登录输入你的密码——确定——确定完成.重启看看电脑是不是不用输入密码也可以自动 ...
- 使用php作linux自动执行脚本
使用php作linux自动执行脚本 [来源] 达内 [编辑] 达内 [时间]2013-03-21 在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户 login或者 ...
- Delphi结构体数组指针的问题
//这段代码在Delphi 2007和delphi 7下是可以执行的,所以正确使用结构体数组和指针应该是这样的,已验证 unit Unit1; interface uses Windows, Mess ...
- nginx php解析过慢
nginx 报错 upstream timed out (110: Connection timed out)解决方案 error.log报错如下: 2013/05/18 21:21:36 [erro ...
- SQL Server游标【转】
什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作 ...