菜鸟的Android学习笔记(二)
来源:互联网 发布:淘宝七天退换什么意思 编辑:程序博客网 时间:2024/06/10 06:10
列表视图(ListView)
使用数组创建ListView十分简单,但能够定制的内容很少。把ListView作为AdapterView使用,可以通过Adapter控制每个列表项的外观和行为。
Adapter
Adapter本身只是一个接口,常用的实现类有:ArrayAdapter,SimpleAdapter, BaseAdapter.
使用ArrayAdapter创建ListView
ArrayAdapter由数组或List为列表项提供数据。列表项的外观用单独的xml布局文件控制,可以指定字号,
颜色,分割线颜色等。代码很简单,这里距不贴了。使用SimpleAdapter创建ListView
假设,我们要创建一个类似于QQ好友列表的列表视图,如图:
每个列表项的对应的布局文件很简单:1个ImageView和2个TextView水平排列;2个TextView之间垂直排列。布局文件simple_item.xml如下。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"><!-- 定义一个ImageView,用于作为列表项的一部分。 --><ImageView android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp"/><LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"><!-- 定义一个TextView,用于作为列表项的一部分。 --><TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:textColor="#f0f" android:paddingLeft="10dp"/><!-- 定义一个TextView,用于作为列表项的一部分。 --><TextView android:id="@+id/desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14dp" android:paddingLeft="10dp"/></LinearLayout></LinearLayout>
要使用SimpleAdapter,首先需要建立一个List集合,用来保存所有的列表项。单个列表项的数据用 Map<String,?>
来保存,要填充几个组件就需要几个key-value键值对。创建SimpleAdapter对象时,需要传入5个参数。
- 第一个参数: this指针
- 第二个参数:即刚刚建立的List集合,集合中每个元素对应一个列表项
- 第三个参数:列表项界面的布局ID
- 第四个参数:该参数类型为String[],用来提取
map<String,?>
中对应key的值 - 第五个参数:类型为int[], 值为列表项中需要填充的组件的ID
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 创建一个List集合,List集合的元素是Map List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(); for (int i = 0; i < names.length; i++) { Map<String, Object> listItem = new HashMap<String, Object>(); listItem.put("header", imageIds[i]); listItem.put("personName", names[i]); listItem.put("desc", descs[i]); listItems.add(listItem); } // 创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.simple_item, new String[] { "personName", "header" , "desc"}, new int[] { R.id.name, R.id.header , R.id.desc }); ListView list = (ListView) findViewById(R.id.mylist); // 为ListView设置Adapter list.setAdapter(simpleAdapter);
0 0
- 菜鸟的Android学习笔记(二)
- 菜鸟学习android的笔记
- Android 菜鸟学习笔记
- 菜鸟的Android学习笔记(一)
- 菜鸟的学习笔记
- 超级菜鸟的JAVA学习笔记(二)
- 菜鸟学习Android笔记-20140311
- Android菜鸟-学习笔记1
- augular.js 菜鸟学习笔记 (二)
- 菜鸟学习NodeJS笔记(二)
- Android菜鸟笔记-由startService到bindService的学习
- 菜鸟的javascript学习笔记
- 菜鸟的汇编语言学习笔记
- YAF 菜鸟的学习笔记
- 菜鸟的Linux学习笔记
- Android开发-菜鸟学习笔记-随机数
- Android菜鸟学习笔记(GridView)
- Android菜鸟的学习记录。
- 如何分析matlab程序的主要效率问题
- 安装Java
- 进程间通讯总结 (7) --COM
- 渗透漏洞框架
- JDK的帮助文档
- 菜鸟的Android学习笔记(二)
- 第一个deeplearning4jproject跑起
- (转)Eclipse 下找不到或无法加载主类的解决办法
- PyCharm使用技巧记录(一)如何查看变量
- 到底该如何入门Keras、Theano呢?(浅谈)
- Keras如何构造简单的CNN网络
- 张老师:Condition多路例子
- PyCharm如何设置显示行号?
- Python/Keras如何将给定的数据集打乱