2

我正在使用 SQLite 数据库中用户提供的数据填充微调器。

问题在于,在Android 3.0和更新版本上,微调器列表的出现顺序与数据库中的数据相同(未排序)。但是,在Android 2.3.3中,微调器内容会自动按字母顺序排序。这意味着我的微调器中的第一项与我的数据库/光标中的第一项不同。

一种可能的解决方案是使用getItemAtPosition(pos).toString(),但由于我的微调器行包含数据库中两列的组合,这意味着我必须拆分 的结果getItemAtPosition(pos).toString(),在数据库中搜索第一个单词,然后在结果中搜索第二个单词。然后我必须检索相应的 ID 并在屏幕上显示属于该 ID 的数据。每次用户在微调器上选择另一个项目时,所有这些代码都必须运行,这似乎相当低效。

我发现的大多数示例/教程都假设微调器和数据的列表顺序是相同的。

我在这里做错了什么?

4

1 回答 1

1

我不确定发生了什么事。我自己用过微调器,从来没有遇到过这个问题。再说一次,我通常自己强加某种排序,因为我不能依赖数据库条目的半随机排序。

我建议您在您的请求中添加“按 _id asc 排序”(或 desc)。这将强制 Sqlite 根据它们添加到数据库的顺序对数据进行排序。

于 2013-06-15T21:33:00.907 回答