安卓学习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步骤:
  1. 使用Eclipse IDE创建Android应用程序,在包com.yiibai.helloworld下创建一个命名为 ListView 的项目
  2. 修改res/layout/activity_main.xml文件的默认内容以包括ListView的内容及属性
  3. 在res/values/strings.xml文件中定义所需的常量
  4. 创建一个文本文件res/layout/activity_listview.xml。该文件将设置显示所有的列表项。所以可以使用此文件自定义其字体,填充,颜色等。
  5. 运行该应用程序启动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)

 

posted on 2021-02-24 19:41  桑榆非晚柠月如风  阅读(56)  评论(0编辑  收藏  举报