gpt4 book ai didi

java - ListAdapter 在 ListView 中只添加一种类型的数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:51 28 4
gpt4 key购买 nike

有人可以帮我解决这个问题吗?我有两个光标项。

  • 一个获取时间数据
  • 还有一个是从数据库中获取任务的名称。

但它只是在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);





}

最佳答案

您可以做的几件事:

  • 创建您自己的游标适配器,这样您就可以传递 2 个游标,并根据需要显示数据。

  • 将游标与您需要的数据合二为一,这样您就可以使用标准适配器。

  • 将游标组合成一个字符串数组。所以你会得到你需要的数据并将它保存在像这样的字符串中:时间 - 任务名称。然后使用 ArrayAdapter 填充 ListView。

如果您在谷歌上搜索一下,我认为所有这 3 种方法都有足够的代码。我假设问题是当前适配器没有组合两个表的逻辑。

关于java - ListAdapter 在 ListView 中只添加一种类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34742401/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com