我試圖填充從遊標listview
所以我用這個代碼:SimpleCursorAdapter不會填充我的ListView,沒有錯誤,只是沒有任何反應
Cursor curVal = db.rawQuery("SELECT * FROM category ORDER BY order_cat ASC", null);
String[] inVal = new String[] { "nume_cat", "order_cat" };
int[] outVal = new int[] { R.id.title_cat, R.id.duration };
SimpleCursorAdapter cadapter = new SimpleCursorAdapter(this, R.layout.list_row, curVal, inVal, outVal);
ListView listView = (ListView) findViewById(R.id.mainListView);
listView.setAdapter(cadapter);
listView.setOnItemClickListener(this);
這裏是我的XML`s:
List_row.xml
......................
<TextView
android:id="@+id/title_cat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/thumbnail"
android:layout_toRightOf="@+id/thumbnail"
android:text="FILL CAT NAME HERE"
android:textColor="#040404"
android:typeface="sans"
android:textSize="15dip"
android:textStyle="bold"/>
<TextView
android:id="@+id/duration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title_cat"
android:textColor="#343434"
android:textSize="10dip"
android:layout_marginTop="1dip"
android:layout_toRightOf="@+id/thumbnail"
android:text="FILL DURATION HERE" />
.....................
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:id="@+id/title_main"
android:text="TITLE HERE"
android:padding="15dip"
android:textSize="18dip"
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="15dip"
android:id="@+android:id/mainListView">
</ListView>
</LinearLayout>
問題: 當我運行的應用程序沒有任何反應,我看不到我的列表視圖。日食不回我任何錯誤或警告logcat中...
我tryed容易的方法,使用ArrayAdapter和所有工作正常,但我需要,因爲我需要在每個名單上超過1個TextView中使用的CursorAdapter項目。
這裏是工作ArrayAdapter:
ArrayList<String> catList = new ArrayList<String>();
ListView listView = (ListView) findViewById(R.id.mainListView);
ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, R.layout.list_row, R.id.title_cat, catList);
Cursor curVal = db.rawQuery("SELECT * FROM category ORDER BY order_cat ASC", null);
if (curVal.moveToFirst()) {
do {
String data = curVal.getString(curVal.getColumnIndex("nume_cat"));
listAdapter.add(data);
} while (curVal.moveToNext());
}
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(this);
現在讓我們排除任何問題:
是,我的光標包含一個_id領域。
是的,我重複檢查了我的光標,它有20行。
System.out.println("Cursor adapter has " + cadapter.getCount() + " lines.");
打印 「光標適配器有18行」
可以從:
int[] outVal = new int[] { R.id.title_cat, R.id.duration };
and
SimpleCursorAdapter cadapter = new SimpleCursorAdapter(this, R.layout.list_row, curVal, inVal, outVal);
NEED TO REPLACE WITH ?
int[] outVal = new int[] { android.R.id.title_cat, android.R.id.duration };
and
SimpleCursorAdapter cadapter = new SimpleCursorAdapter(this, android.R.layout.list_row, curVal, inVal, outVal);
但我怎麼定義ID爲android.R.id.title_cat代替R.id.title_cat? 如果我把我的XML
<TextView
android:id="@+android:id/title_cat"
在我的類文件日食retuns我一個錯誤「title_cat不能得到解決或無法在現場」
看到這個:http:// stackoverflow。com/questions/5025910/id-and-id-in-android之間的區別 – Atrix1987 2013-02-19 06:27:13