Если после нескольких часов, потерянных с этой проблемой, мне поможет дальнейшая помощь, я смог решить ее, используя тот же пример A-IV, с некоторыми изменениями.
Прежде всего, важно, чтобы методclearFocus () вызывается перед выполнением runnable.
Устройства, которые имеют такой же контроллер сенсорного режима, не имеют визуального эффекта при вызове метода setSelection (index), но элемент обычно выбирается.Поэтому необходимо вызвать requestFocusFromTouch (), чтобы включить визуальные изменения, вызванные методом setSelection (index).
После вызова setSelection (index), вызвать requestFocus (), чтобы дать фокус на просмотр.
@Override public void onRestoreInstanceState(Bundle savedInstanceState) {
...
final int listIndex = savedInstanceState.getInt("ListIndex");
f_listView.clearFocus();
f_listView.post(new Runnable() {
@Override
public void run() {
listView.requestFocusFromTouch();
listView.setSelection(listIndex);
listView.requestFocus();
}
});
}
Надеюсь, я помог!