Использование setSingleChoiceItems AlertDialog.Builder по идентификатору, а не по позиции - PullRequest
3 голосов
/ 24 августа 2011

Я использую AlertDialog для отображения списка элементов с одним выбором из базы данных.Я использую AlertDialog.Builder для его создания, но я озадачен тем, как я должен использовать метод setSingleChoiceItems в этой ситуации.

В частности, я знаю, какой элемент следует проверять при первом показе диалога,но я знаю это по ID, а не по должности.Метод setSingleChoiceItems требует позиции выбранного элемента, а не ID.

Я думал о двух разных способах решения этой проблемы, но ни один из них не кажется "правильным":

  1. Перед использованиемстроитель, запросите базу данных и подсчитайте количество строк, пока не найдете идентификатор, который я хочу выбрать.Теперь я знаю позицию.Это кажется плохим, потому что для этого требуется второй запрос к базе данных.
  2. После использования компоновщика выполните итерацию по элементам списка и найдите элемент с идентификатором, который я хочу выбрать, а затем выберите его после факта.Это работает, но это означает, что мне нужно поставить -1 в вызове setSingleChoiceItems, а затем установить его позже.Для меня это похоже на хак.

Итак, мой вопрос, есть ли какой-то другой лучший метод, который я пропускаю?Или любой из вышеперечисленных является лучшим способом подойти к этому?

1 Ответ

0 голосов
/ 24 августа 2011

Если ваш идентификатор также является целым числом, вы можете установить само положение в качестве идентификатора.

...