2011年11月3日 星期四

Android: ListView (Cursor)

A ScrollView will work for a few dozen records. 
Use ListView for more records. 

In main layout XML
<ListView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/myListView" android:background="#6000" /> </LinearLayout>

Add another layout XML (row.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/ItemImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/ItemTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <TextView
            android:id="@+id/ItemText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
       
    </LinearLayout>

</LinearLayout>

Create SimpleCursorAdapter to describe a single row of data
static final String[] FROM = { DbHelper.C_CREATED_AT, DbHelper.C_USER, DbHelper.C_TEXT }; //
static final int[] TO = { R.id.textCreatedAt, R.id.textUser, R.id.textText };
Cursor cursor; //

cursor = db.query(DbHelper.TABLE, null, null, null, null, null, DbHelper.C_CREATED_AT + " DESC");
adapter = new SimpleCursorAdapter(this, R.layout.row, cursor, FROM, TO); //
myViewList.setAdapter(adapter);

沒有留言:

張貼留言