Настройка выбора Spinner по значению, а не по положению
При обновлении представления выбор Spinner должен соответствовать значению, хранящемуся в базе данных, Обычный подход заключается в поиске соответствующей позиции с помощью метода indexOf адаптера. Однако этот подход сталкивается с препятствием, поскольку адаптер не предоставляет такого метода.
Чтобы преодолеть эту проблему, более подходящим подходом является использование метода getPosition класса ArrayAdapter. Этот метод в сочетании с подходящим ArrayAdapter позволяет идентифицировать позицию, связанную с определенным значением.
Рассмотрим сценарий, в котором счетчик с именем mSpinner содержит значение «некоторое значение». Чтобы найти и сравнить его положение, выполните следующие действия:
Создайте ArrayAdapter из файла ресурсов R.array.select_state:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
Установите адаптер Spinner и DropDownViewResource:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
Далее, если сравниваемое значение (compareValue) не равно нулю:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
Применяя этот подход, выбор Spinner можно точно установить на основе значения, хранящегося в базе данных, обеспечивая удобство работы пользователя во время обновлений представления.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3