我在这里感到有些困惑。
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.bugs_list_item, itemCursor,
new String[] {db.KEY_ROWID, db.BUGS_DATE, db.BUGS_DESCRIPTION},
new int[] {R.id.bug_id, R.id.bug_date, R.id.bug_description});
这基本上显示了一个带有日期和描述但没有id的ListView(我只是得到空格代替id)。 _id字段是主键,它是一个整数。
了解它在img上的外观
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/bug_id"
android:layout_width="5dip"
android:layout_height="wrap_content"
android:padding="3dip"
>
</TextView>
<TextView
android:id="@+id/bug_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip"
android:gravity="right"
>
</TextView>
<TextView
android:id="@+id/bug_description"
android:layout_width="180dip"
android:layout_height="wrap_content"
android:padding="3dip"
android:gravity="right"
>
</TextView>
</TableRow>
</TableLayout>
创建表查询:
BUGS_CREATE = "CREATE TABLE bugs (_id INTEGER NOT NULL PRIMARY KEY, date DATE DEFAULT (DATETIME('NOW')) NOT NULL, description TEXT) ";
答案 0 :(得分:0)
非常重要的是,您的“id-field”的名称为“_id”,否则可能无效。
答案 1 :(得分:0)
列表视图行的XML是什么样的?你有没有正确设置ID?
修改强>
由于您的XML文件似乎设置正确,我现在相信您的问题是另一回事。可能是没有从数据库中正确存储或检索bug_id字段的数据。
这是来自android docs:
'确保为记录的ID包含一个名为“_id”的整数列(带有常量_ID)。无论您是否拥有在所有记录中也是唯一的其他字段(例如URL),您都应该拥有此字段。如果您使用的是SQLite数据库,则_ID字段应为以下类型:
INTEGER PRIMARY KEY AUTOINCREMENT'
尝试更改您的create table SQL,为您的bug_id字段添加如下别名:
bug_id as _id integer primary key autoincrement,
而不是:
bug_id integer primary key autoincrement,
答案 2 :(得分:0)
发现问题:
android:layout_width="5dip"
android:padding="3dip"
布局宽度仅为5px,当我用3px填充文本时,它可能会在另一个布局下面消失... geez