Android Master Detail Flow - выберите первый элемент в списке только на планшете

Я создал новое приложение, основанное на стандартном шаблоне "Master Detail Flow", выбранном в диалоговом окне "Новый проект..." в Android Studio. Затем я адаптировал приложение для удовлетворения моих потребностей и моих данных. Работает как шарм на карманных компьютерах и планшетах.

Единственное, что я хочу достичь, - это автоматическое определение первого элемента в списке, отображение подробного представления и установка выбранного элемента списка.

В "ItemListFragment" я вызвал метод onListItemClick (...) в перезаписанном методе onStart(). Это имело следующие виды поведения:

  • При вращении устройства выбирается первый элемент в списке (а не ранее выбранный)
  • Элемент списка не будет отмечен как выбранный в списке

Может ли кто-нибудь указать мне в правильном направлении, как это сделать. Потому что я только хочу этого поведения в "Tablet-Mode", я думаю, я должен поместить его в ItemListActivity?

Спасибо

EDIT: Это мой метод "onCreate" в "ItemListActivity"

protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_item_list);
 if (findViewById(R.id.item_detail_container) != null) {
 mTwoPane = true;
 ((ItemListFragment) getFragmentManager()
 .findFragmentById(R.id.item_list))
 .setActivateOnItemClick(true);
 }
}
1 ответ

Это можно устранить, удалив вызов onListItemClick(...) в onStart(...) из ItemListFragment и вместо этого добавив этот ниже фрагмент к концу setActivateOnItemClick(...):

// If on dual-pane view, pre-select the first item from the chapter list
 if (activateOnItemClick && mActivatedPosition == ListView.INVALID_POSITION) {
 getListView().performItemClick(getListView(), 0, getListView().getItemIdAtPosition(0));
 }

Также добавьте эту одну строку кода, если она еще не находится в onListItemClick(...) в ItemListFragment:

mActivatedPosition = position;

Пожалуйста, проверьте diff на файле ChapterListFragment из этих коммитов вчера на моем реестре GH, чтобы получить немного больше контекста для моего решения - https://github.com/floydpink/BhagavadGita/compare/047de35c39f01c6341a7f677aa5b7cc47a7144a3...b1b45d15cd68290e2ebe909ca920bd7aefd2805e#diff-1

Надеюсь, что это поможет

licensed under cc by-sa 3.0 with attribution.