在屏幕旋转上销毁/离开动作模式

时间:2013-10-06 11:13:12

标签: android android-actionbar contextual-action-bar

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

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

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

不幸的是,上面没有任何作品。

感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

退出ActionMode的方法是致电actionMode.finish()

很遗憾,您只能在ActionMode中获得对onItemCheckedStateChanged的引用,因此您必须将其泄露到Activity。然后,Activity可以决定在onStop/onDestroyonConfigurationChange中完成它(取决于您是否正在处理配置更改)。

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

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

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