1

我有一个带有 MultiChoiceModeListener 的 ListFragment 用于上下文操作模式。长按后,项目被选中。但是:如果我旋转屏幕,选择会丢失,但 Android 仍处于操作模式。这意味着:您仍然可以在屏幕旋转之前选择对您选择的特定项目的操作。

我想在屏幕旋转后离开动作模式。只显示正常的 OptionsMenu。似乎比听起来更难。我已经在 onCreate() 中尝试过:

  • 无效选项菜单()
  • getListView().clearChoices();

不幸的是,上面没有任何效果。

谢谢您的帮助。:)

4

1 回答 1

0

退出 an 的方法ActionMode是调用actionMode.finish().

不幸的是,您只能获得对ActionModein的引用onItemCheckedStateChanged,因此您必须将其泄漏到Activity. 然后,Activity可以决定在onStop/onDestroyor中完成它onConfigurationChange(取决于您是否正在处理配置更改)。

它并不优雅,但它是我现在能想到的最好的。

编辑:实际上,你有一个不同的问题 - 为什么 ListView 不记得它的选择?

savedInstanceState如果in不为空,请尝试不进行初始化onCreate(即让 ListView 恢复其状态),然后看看会发生什么。

于 2013-10-06T11:37:23.587 回答