Как установить выбор счетчика по идентификатору, а не по позиции

Я создал простой Spinner, привязав его к SimpleCursorAdapter . Я заполняю SimpleCursorAdapter списком городов от поставщика контента.

Когда я иду, чтобы сохранить выбор пользователей, я планирую сохранить идентификатор строки, который заполняется в моем ] SimpleCursorAdapter .

Я использую следующий код для получения идентификатора.

townSpinner.getSelectedItemId();

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

следующий код работает, но устанавливает выбор только по номеру позиции.

townSpinner.setSelection(2);

Должен ли я просто создать цикл для определения правильного значения позиции на основе идентификатора?

long cityId = Long.parseLong(cursor.getString(CityQuery.CITY_ID));

for (int i = 0; i < citySpinner.getCount(); i++) {              
    long itemIdAtPosition2 = citySpinner.getItemIdAtPosition(i);
    if (itemIdAtPosition2 == cityId) {
        citySpinner.setSelection(i);
        break;
    }
}
7
задан ban-geoengineering 30 November 2019 в 09:44
поделиться