【发布时间】:2014-09-08 07:18:48
【问题描述】:
我正在测试一个基本的 SQLite 查询并使用 SimpleCursorAdapter 填充一个 ListView,其中包含 LinearLayout,其中包含列数据的 TextView,但是当我更改 TextView 的顺序时,TextView 中的数据会随顺序移动,而不是随R.id.
在下面的示例中,TextView 的顺序是@+id/rowid 和@+id/name,并且正确填充了来自光标的数据。
但是,如果我修改 row.xml 以更改 EditText 的顺序(我剪切了整个 TextView 元素并将其粘贴到另一个 TextView 的另一侧),来自光标的数据将保持相同的顺序,即.来自游标的DatabaseHelper.NAME 数据进入@+id/rowid EditText,来自游标的_id 数据进入@+id/name
这是正常行为吗?我希望 SimpleCursorAdapter 'from' 列在构造函数中按照它们各自的顺序填充 'to' 视图。
示例代码:
Cursor usersCursor;
String query = String.format("SELECT _id, %s FROM %s",
DatabaseHelper.NAME, DatabaseHelper.TABLE);
cursor = db.getReadableDatabase().rawQuery(query, null);
usersCursorAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.row, usersCursor,
new String[] { "_id", DatabaseHelper.NAME },
new int[] { R.id.rowid, R.id.name },
0);
userList.setAdapter(usersCursorAdapter);
而 R.layout.row.xml 是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/rowid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:textSize="36sp" />
</LinearLayout>
【问题讨论】:
标签: android sqlite listview simplecursoradapter