У меня есть приложение для Android, которое (на планшетах) использует поток главной детали, чтобы показать список прогнозов слева и подробную информацию справа. Я хочу, чтобы иметь возможность выбрать первый элемент, когда приложение загружается.
У меня есть код в методе onLoadFinished
, который устанавливает выбранный индекс. Я реализовал это, потому что иногда пользователь выбирал элемент, и если бы они меняли ориентацию, он был бы выключен. Я использовал этот следующий метод, чтобы убедиться, что как только он загрузит правильный элемент, он снова выбран:
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mForecastAdapter.swapCursor(data);
// If we have a selected index - select it.
if(mSelectedIndex != ListView.INVALID_POSITION) {
mForecastListView.setSelection(mSelectedIndex);
}
}
Я попробовал добавить оператор else, который проверял, использовался ли планшет, чтобы выбрать первый элемент. Код был выполнен, но, похоже, это произошло до того, как действительно загрузился список, и элемент не был выбран. Где я должен помещать код для выбора первого элемента после открытия приложения?
ИЗМЕНИТЬ Вот метод, который я пробовал, не повезло:
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mForecastAdapter.swapCursor(data);
// If we have a selected index - select it.
if(mSelectedIndex != ListView.INVALID_POSITION) {
mForecastListView.setSelection(mSelectedIndex);
} else if(mForecastAdapter.IsTwoPane()){
mForecastListView.setSelection(0);
}
}