Я использую AlertDialog для отображения списка элементов с одним выбором из базы данных.Я использую AlertDialog.Builder для его создания, но я озадачен тем, как я должен использовать метод setSingleChoiceItems в этой ситуации.
В частности, я знаю, какой элемент следует проверять при первом показе диалога,но я знаю это по ID, а не по должности.Метод setSingleChoiceItems требует позиции выбранного элемента, а не ID.
Я думал о двух разных способах решения этой проблемы, но ни один из них не кажется "правильным":
- Перед использованиемстроитель, запросите базу данных и подсчитайте количество строк, пока не найдете идентификатор, который я хочу выбрать.Теперь я знаю позицию.Это кажется плохим, потому что для этого требуется второй запрос к базе данных.
- После использования компоновщика выполните итерацию по элементам списка и найдите элемент с идентификатором, который я хочу выбрать, а затем выберите его после факта.Это работает, но это означает, что мне нужно поставить -1 в вызове setSingleChoiceItems, а затем установить его позже.Для меня это похоже на хак.
Итак, мой вопрос, есть ли какой-то другой лучший метод, который я пропускаю?Или любой из вышеперечисленных является лучшим способом подойти к этому?