2013-10-06 5 views
0

У меня есть ListFragment с MultiChoiceModeListener для контекстного режима действия. После длительного щелчка элементы выбираются. Однако: если я поворачиваю экран, выбор теряется, но Android остается в режиме действия. Это означает: вы все равно можете выбрать действия над определенными элементами, которые вы выбрали до поворота экрана.Уничтожить/Оставить режим действия на экране Вращение

Я хотел бы выйти из режима действия после поворота экрана. Просто покажите обычный OptionsMenu. Кажется сложнее, чем кажется. Я попробовал те, в OnCreate():.

  • invalidateOptionsMenu()
  • getListView() clearChoices();

К сожалению, ничего из этого не работает.

Благодарим за помощь. :)

ответ

0

Способ выхода из ActionMode - позвонить по телефону actionMode.finish().

К сожалению, вы получите только ссылку на ActionMode в onItemCheckedStateChanged, так что вам придется просачивать ее до Activity. Затем Activity может решить завершить его в onStop/onDestroy или onConfigurationChange (в зависимости от того, обрабатываете ли вы изменения конфигурации).

Это не элегантно, но это лучшее, что я могу придумать прямо сейчас.

EDIT: На самом деле у вас другая проблема - почему ListView не помнит его выбор?

Не пытайтесь инициализировать, если savedInstanceState в onCreate не является нулевым (то есть, ListView восстанавливает его состояние) и видит, что происходит тогда.

+0

Я понял, что использовал неправильный список-макет. Теперь я использую simple_list_item_activated_1, и ListView запоминает его состояние. Я могу жить с (действительно, я предпочитаю) это решение. :) – Daniel