ListView控件相对于其他控件来说,应该算是很难掌握的一种件了,自己学了几天的ListView的一些方法,现在就将自己所学的知识总结一下。
显示ListView的4要素
- ListView控件:用于决定整个列表的尺寸
- 数据源:用于决定需要显示哪些数据,通常是List集合
- 列表项的布局(模版):用于决定每一个列表项的显示外观,表现为res\layout下的布局文件
- Adapter:用于组装每一条数据与模版,得到每一个列表项,被ListView用于显示
ListView与ArrayAdapter
【开发流程】
1. 在界面设计中添加控件,并配置宽度、高度、id属性
2. 在res\layout下新建xml文件,根节点选择TextView
3. 在程序中,使用List
就先从做一个简单的联系人列表入手吧
1.在activity_main.xml文件中加入ListView控件
<ListView
android:id="@+id/lv_contact"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.为ListView创建子项布局,新建contact_item_xml,根节点选择TextView,代码如下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv_contact_item_name"
android:text="kk"
android:textSize="20sp">
</TextView>
3.在主程序中先定义一个ListView,List集合,ArrayAdapter
private ListView lvContact;
private List<String> contactList;
private ArrayAdapter<String> adapter;
在Oncreate方法中的代码为
//初始化数据,将数据装入容器中
contactList = new ArrayList<String>();
contactList.add("张三");
contactList.add("李四");
contactList.add("王五");
contactList.add("麻子");
//初始化ListView
lvContact=(ListView) findViewById(R.id.lv_contact);
//初始化ArrayAdapter
adapter=new ArrayAdapter<String>(MainActivity.this, R.layout.contact_item, contactList);
//为ListView设置适配器
lvContact.setAdapter(adapter);
}
其中adapter=new ArrayAdapter(MainActivity.this, R.layout.contact_item, contactList);第一个参数是当前Activity的一个对象,所以我们传入的是MainActivity.this, 第二个参数是第二步中为ListView控件创建的子项布局,第三个参数是容器contactList