【发布时间】:2016-01-12 11:24:52
【问题描述】:
有人可以帮我解决这个问题吗?我有两个光标项目。
- 一个获取时间数据
- 还有一个从数据库中获取任务名称。
但它只在 ListView 中设置任务。当我删除任务光标时,它会设置时间,但不能同时设置两者。
我想要这个作为列表:时间 - 任务名称
这是它的代码部分:
public void updateUI() {
helper = new TaskDBHelper(MainActivityPhone.this);
SQLiteDatabase sqlDB = helper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TIME},
null, null, null, null, TaskContract.Columns.TIME + " ASC");
Cursor cursor2 = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, TaskContract.Columns.TIME + " ASC");
listAdapter = new SimpleCursorAdapter(
this, R.layout.task_view,cursor,
new String[]{TaskContract.Columns.TIME, TaskContract.Columns.TASK},
new int[]{R.id.timeTextView, R.id.taskTextView},
0
);
// Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(cursor));
/* Cursor cursor2 = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, TaskContract.Columns.TIME + " ASC");
listAdapter = new SimpleCursorAdapter(
this,
R.layout.task_view,
cursor2,
new String[]{TaskContract.Columns.TASK},
new int[]{R.id.taskTextView},
0
);*/
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(listAdapter);
}
【问题讨论】:
-
你可以自己创建 cursoradapter,看这个:stackoverflow.com/questions/5300787/…
-
我相信您必须为此制作一个自定义适配器,因为
SimpleCursorAdapter一次只需要一个Cursor。因此,当适配器只有一个Cursor可用时,您无法显示来自另一个Cursor的数据。 -
使用投影
columnslikeTaskContract.Columns._ID, TaskContract.Columns.TIME, TaskContract.Columns.TASK
标签: java android android-layout listview