Android开发小结Part9:ListView显示信息

要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何绑定呢,我们需要创建适配器进行绑定,创建适配器有两种方式:
第一种是用SimpleAdapter创建(要求绑定的数据是List<HashMap<String, Object>>数据类型)
第二种是用SimpleCursorAdapter创建(要求绑定的数据是Cursor数据类型)

如果想了解第一种的具体实现方式,请参见网址:http://blog.csdn.net/furongkang/article/details/6819247
我尝试了第二种方法,总结如下:

1.效果图

Android开发小结Part9:ListView显示信息
2.主页面布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="57dp"
            android:layout_height="wrap_content"
            android:text="课程号"
            android:textSize="16dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="课程名称"
            android:textSize="16dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="44dp"
            android:layout_height="wrap_content"
            android:text="学时"
            android:textSize="16dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="41dp"
            android:layout_height="wrap_content"
            android:text="学分"
            android:textSize="16dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="授课教师"
            android:textSize="16dp"
            android:textStyle="bold" />

    </LinearLayout>

    <ListView
        android:id="@+id/lvCourseList"
        android:layout_width="fill_parent"
        android:layout_height="281dp" >

    </ListView>


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="152dp" >

        <EditText
            android:id="@+id/etSelectCourseId"
            android:layout_width="126dp"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_weight="0.17"
            android:ems="10"
            android:hint="请输入课程号!" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent" >

        </LinearLayout>

        <Button
            android:id="@+id/btnSelectCourse"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@drawable/btn"
            android:text="选课" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="95dp"
            android:layout_height="fill_parent"
            android:src="@drawable/android3" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="24dp" >

        <TextView
            android:id="@+id/tvSelectResult"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#CB2B3E" />
    </LinearLayout>
	
</LinearLayout>

3.ListView布局文件item.xml(右键项目-new-others-Android-xml文件)
<?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" >
   
  <TextView  
   android:layout_width="57dp"  
   android:layout_height="wrap_content"  
   android:id="@+id/cno"  
  />  
  <TextView  
   android:layout_width="100dp"  
   android:layout_height="wrap_content"  
   android:id="@+id/name"  
  />  
  <TextView  
   android:layout_width="44dp"  
   android:layout_height="wrap_content"  
   android:id="@+id/hours"  
  /> 
  <TextView  
   android:layout_width="41dp"  
   android:layout_height="wrap_content"  
   android:id="@+id/credit"  
  /> 
  <TextView  
   android:layout_width="fill_parent"  
   android:layout_height="wrap_content"  
   android:id="@+id/tname"  
  /> 

</LinearLayout>
4.使用SimpleCursorAdapter进行数据绑定
//获取游标,这里通过数据库查询得到一个Cursor查询结果  
Cursor cursor = ss.courses();
//创建SimpleCursorAdapter适配器将数据绑定到item显示控件上  
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
                    this,//上下文Context
                    R.layout.item, //自定义xml布局文件
                    cursor,//结果数据集   
                    new String[]{"c_no", "name", "hours","credit","t_name"}, //对应游标中的字段
                    new int[]{R.id.cno, R.id.name, R.id.hours,R.id.credit,R.id.tname}); //对应xml布局文件里的控件ID
ListView lvCourseList = (ListView) findViewById(R.id.lvCourseList);
lvCourseList.setAdapter(adapter);
注意:使用这种方式在获取数据集合时必须指定主键"_id"

你可能感兴趣的:(android,ListView)