【发布时间】:2014-05-03 10:09:23
【问题描述】:
我有一个 ListView 和 5 个 TextViews,所以我使用 SimpleCursorAdapter 来填充它。数据来自内容提供商。
我的问题是_id 列。我知道我必须包含它以使适配器正常工作。我的问题是,我有 5 个文本视图,我将为 six 列设置 projection 数组。
to[] 和 from[] 的数组
static {
from = new String[] {
EmployeeProviderContract.ROW_ID,
EmployeeProviderContract.F_NAME,
EmployeeProviderContract.L_NAME,
EmployeeProviderContract.ROW_EMP_ID,
EmployeeProviderContract.AGE,
EmployeeProviderContract.SEX
};
to = new int[] {
R.id.employee_first_name,
R.id.employee_last_name,
R.id.e_employee_id,
R.id.e_age,
R.id.e_sex
};
}
如您所见,to[] 中有 5 个项目,from[] 中有 6 个项目(因为 _id)。
简单的光标适配器
mAdapter = new SimpleCursorAdapter(getApplicationContext(),
R.layout.single_row_layout, // The row template
null, // Cursor but we dont have one right now, so NULL. Will come from swapCursor()
from,// Columns to show from
to, // The layout ids i.e individual text views to show the data in
0); // Default 0 as FLAG
因此,当光标返回时,它会在R.id.employee_first_name 中设置_id 的值,以此类推其余的值。我不想在文本视图中显示_id。我不能删除 _id 否则它会引发异常。 我该如何解决这个问题? 非常愚蠢的问题,但我似乎找不到合适的方法。
这就是内容提供者查询的样子
Cursor returnCursor = db.query(EmployeeProviderContract.EMP_PERSONAL_TABLE_NAME,
projection, selection , selectionArgs, null, null, sortOrder);
注意:我扩展的是 Activity 而不是 ListActivity。
【问题讨论】:
-
我不能删除 _id 否则会引发异常。 什么样的异常?
-
java.lang.IllegalArgumentException: 列 '_id' 不存在
-
我明白了。在
create table查询中,您是否有_id列?
标签: android simplecursoradapter