这是一个有趣的问题,我很震惊,没有在互联网上更频繁地被问到.一旦您获得ContentProvider并运行并学习如何使用它,Android的CursorAdapters就非常有用,但是由于需要将_id字段作为查询的一部分(无错误的抛出)将会受到限制.这就是为什么:
我的具体问题是我有两个旋转器:一个微调器应该包含来自数据库的唯一的“类别”名称,另一个应该从所选的“类别”(类别为列名称,在这里)填充所有数据库条目.这似乎是一个非常简单的设置,许多程序可能使用,不?试图实现第一个微调器是我遇到问题的地方.
这是我想要的第一个微调器的查询:
SELECT DISTINCT category FROM table;
使此查询在CursorAdapter上引发错误,因为_id列是查询的一部分.将_id列添加到投影自然会返回表的每一行,因为您现在也要求不同的id,并且每个id都是不同的(根据定义).显然我宁愿看到每个类别名称只有一个条目.
我已经实现了一个工作,这是为了简单地做上面的查询,然后将结果复制到一个ArrayAdapter.我的这个帖子的原因是看看是否有一个更优雅的解决方案,这个奇怪的小问题,并开始讨论我可以做得更好.非常受欢迎的其他实施建议,如使用不同类型的控件或适配器.