我正在使用来自SQLite数据库的用户提供的数据填充微调器。
问题在于 Android 3.0 以及更新的微调器列表出现与数据库中的数据(未排序)的顺序相同。但是,在 Android 2.3.3 中,微调器内容会按字母顺序自动排序。这意味着我的微调器中的第一个项目与我的数据库/光标中的第一个项目不同。
一个可能的解决方案是使用getItemAtPosition(pos).toString()
,但由于我的微调器行包含来自我的数据库的两列的组合,这意味着我必须拆分getItemAtPosition(pos).toString()
的结果,搜索数据库中的第一个单词,然后搜索第二个单词的结果。然后我必须检索相应的ID并在屏幕上显示属于该ID的数据。每次用户在微调器上选择另一个项目时,所有这些代码都必须运行,这似乎效率很低。
我发现的大多数示例/教程都假设微调器和数据的列表顺序相同。
我在这里做错了什么?
答案 0 :(得分:1)
我不确定发生了什么。我自己使用过微调器,从未遇到过这个问题。然后,我通常会对自己进行某种排序,因为我不能依赖于数据库条目的半随机排序。
我建议你在你的请求中添加“按_id asc”(或desc)命令。这将强制Sqlite根据数据添加到数据库的顺序对数据进行排序。