androidUI第四部分---1.4.3ListView用法—利用CursorAdapter生成ListView

来源:互联网 发布:程序员职业规划 知乎 编辑:程序博客网 时间:2024/05/22 04:06

CursorAdapter是个抽象类,一般用他的直接子类simplecursorAdapter,废话少说上代码:

ListView lv = (ListView)this.findViewById(R.id.listview);

      Cursor cur = this.getContentResolver().query(Contacts.People.CONTENT_URI, null, null, null, null);

     Log.v("1111", cur.getColumnCount()+"no");

      SimpleCursorAdapter sca = new SimpleCursorAdapter(this,R.layout.listviewitem,cur,new String[]{Contacts.People.NAME},new int[]{R.id.text});

      lv.setAdapter(sca);

由于CursorAdapter是关联数据库里的数据的,这里呢可以直接用联系人电话簿来做测试调用方法this.getContentResolver().query()可以获得一个cursor的对象,可以理解成一个查询的结果记录集,可以把这个例子和simplecursor的例子对比来看生成simplecursorAdapter对象时传的参数意义就很明显了,最后两个参数可以理解成将对应的记录集里的名子显示到listviewitemidtext的控件上。

本例子需要在AndroidManifest.xml文件中添加permission不然没法读取电话簿内容,如下:

<uses-permission android:name= "android.permission.READ_CONTACTS"></uses-permission>

Listviewitem.xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

> 

<TextView  

      android:layout_width="wrap_content"   

    android:layout_height="wrap_content"   

    android:id="@+id/text"

> 

</TextView>

</LinearLayout>

Main.xml文件

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation ="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

  <ListView

  android:layout_width ="fill_parent"

  android:layout_height="wrap_content"

  android:id="@+id/listview"

  ></ListView>

</RelativeLayout>

原创粉丝点击