Android 按ID而不是位置使用AlertDialog.Builder的setSingleChoiceItems

Android 按ID而不是位置使用AlertDialog.Builder的setSingleChoiceItems,android,listview,dialog,android-alertdialog,Android,Listview,Dialog,Android Alertdialog,我正在使用AlertDialog显示数据库中项目的单选列表。我使用AlertDialog.Builder来构建它,但在这种情况下,我不知道应该如何使用setSingleChoiceItems方法 具体地说,我知道在第一次显示对话框时应该检查哪个项目,但我知道是通过ID检查的,而不是通过位置检查的。setSingleChoiceItems方法需要选定项的位置,而不是ID 我已经想到了两种不同的方法来解决这个问题,但这两种方法似乎都不对: 在使用生成器之前,查询数据库并计算行数,直到 查找要选择的I

我正在使用AlertDialog显示数据库中项目的单选列表。我使用AlertDialog.Builder来构建它,但在这种情况下,我不知道应该如何使用setSingleChoiceItems方法

具体地说,我知道在第一次显示对话框时应该检查哪个项目,但我知道是通过ID检查的,而不是通过位置检查的。setSingleChoiceItems方法需要选定项的位置,而不是ID

我已经想到了两种不同的方法来解决这个问题,但这两种方法似乎都不对:

在使用生成器之前,查询数据库并计算行数,直到 查找要选择的ID。现在我知道这个位置了。 这看起来很糟糕,因为它需要第二个数据库查询。 使用生成器后,遍历列表项并找到 一个具有我想要选择的ID,然后在事实发生后选择它。 这是可行的,但这意味着我需要在 setSingleChoiceItems调用,然后稍后进行设置。这感觉像是一场灾难 请听我说。
所以,我的问题是,我还缺少其他更好的方法吗?或者以上哪种方法是最好的方法?

如果您的ID也是一个整数,您可以将位置本身设置为ID。

好的,情况是我有一个数据库表,其中填充了可能的项目列表,并且我保存了所选项目的ID。用户还可以从数据库中添加和删除项目,因此无法保证ID匹配位置。查看一些代码会有所帮助。至少查询和获取项目的方法