安卓学习12(ListView)
1、目标任务:
学习Android——ListView的简单用法
2、预计时间:
1天
3、完成情况:
(1)简介:
ListView是一个组几个项目,并显示在垂直滚动列表。列表项会使用适配器自动插入到列表中,从内容源,如数组或数据库。
ListView和GridView 是 AdapterView 的子类,它们可以填充绑定到一个适配器,它从外部源检索数据,并创建一个视图表示每个数据项。
(2)ListView属性
android:id | 这是唯一标识的布局的ID。 |
android:divider | 这是可拉伸或颜色列表项的绘制。 |
android:dividerHeight | 这指定分频器的高度。这可能是px, dp, sp, in 或 mm。 |
android:footerDividersEnabled | 当设置为false,在ListView将不绘制每个页脚视图之前的分隔。默认值是true。 |
android:entries | 指定引用数组的资源,将用于填充ListView。 |
android:headerDividersEnabled | 当设置为false,在ListView将不绘制每个标题视图之后的分隔。默认值是true。 |
(3)使用ListView步骤:
- 使用Eclipse IDE创建Android应用程序,在包com.yiibai.helloworld下创建一个命名为 ListView 的项目
- 修改res/layout/activity_main.xml文件的默认内容以包括ListView的内容及属性
- 在res/values/strings.xml文件中定义所需的常量
-
创建一个文本文件res/layout/activity_listview.xml。该文件将设置显示所有的列表项。所以可以使用此文件自定义其字体,填充,颜色等。
- 运行该应用程序启动Android模拟器并验证应用程序所运行的结果。
(4)ArrayAdapter
当数据源是一个数组,可以使用这个适配器。默认情况下,ArrayAdapter创建一个视图,每个阵列项目的每个项目上调用toString()并放置在TextView 作为内容。要显示在ListView一个字符串数组,初始化一个新的ArrayAdapter使用构造函数来指定每个字符串的字符串数组的布局
例如:
ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.ListView, StringArray);
-
第一个参数 this 是应用程序上下文。在大多数的情况下使用this 。
-
第二个参数是定义在XML文件中的布局,它是 TextView 数组中的每个字符串。
-
最后一个参数是一个数组,字符串将被填充到文本视图。
public class MainActivity extends Activity { // Array of strings... String[] countryArray = {"China", "India", "Pakistan", "USA", "UK"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, countryArray); ListView listView = (ListView) findViewById(R.id.country_list); listView.setAdapter(adapter); } }
(5)SimpleCursorAdapter
当数据源是一个数据库游标。SimpleCursorAdapter必须使用光标指定一个布局中的每一行,哪些应该被插入到光标列布局的视图。
- 例如,创建一个列表人的姓名和电话号码,可以执行一个查询,返回游标包含每个人的姓名和号码列。然后创建一个字符串数组,指定列游标,在每个结果的布局和一个整数数组指定每一列放在相应的视图:
String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; int[] toViews = {R.id.display_name, R.id.phone_number};
- SimpleCursorAdapter 实例化时,通过为每个要使用的布局,包含结果的游标和这两个数组:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_name_and_number, cursor, fromColumns, toViews, 0); ListView listView = getListView(); listView.setAdapter(adapter);
SimpleCursorAdapter 创建一个视图的每一行游标使用所提供的布局插入每个fromColumns 项的相应 toViews 视图。
4、遇到问题:
无
学习知识参考自:Android ListView - Android教程™ (yiibai.com)