【问题标题】:How to know if the Done button was clicked Action Mode如何知道完成按钮是否被点击 动作模式
【发布时间】:2015-03-16 15:03:57
【问题描述】:

我正在实现一个动作模式,我怀疑是否点击了完成按钮, 谢谢

【问题讨论】:

  • 你的意思是只在点击完成时,而不是在使用其他离开动作模式的方式时?或者当动作模式无论如何都关闭时?
  • 我需要知道何时单击完成,调用我的方法 onSave(),还是不可能?还是模式不正确?

标签: android android-actionmode


【解决方案1】:

您需要使用:onActionItemClicked(ActionMode, MenuItem)

Docs

【讨论】:

  • 但是 DONE 的 id 呢?
  • int doneButtonId = Resources.getSystem().getIdentifier("action_mode_close_button", "id", "android");
  • 警告:以上是一个不灵活的解决方案,它本质上是访问一个私有 API。如果 Google 更改了 action_mode_close_button 的名称,这将停止工作。
  • 对于那些使用 Holoeverywhere 库的人,使用 int 值:org.holoeverywhere.R.id.action_mode_close_button 作为 id 来获取对 DONE viewResource 的引用。注意:只有在 getSystem().getIdentifier("action_mode_close_button", "id", "android") 返回 0 时才这样做;
  • 当我在 API 21 模拟器中按下完成时,我没有接到我的 onActionItemClicked 的电话。
【解决方案2】:

我正在使用这种方法 - 在单击任何操作项时设置一个布尔标志(在 onActionItemClicked 中)。然后在回调的 onDestroyActionMode 我检查这个标志,如果它没有设置,然后点击完成按钮。它假定您在 onActionItemClicked 中完成动作模式。

【讨论】:

    【解决方案3】:

    如果点击了完成按钮。

    这个方法onDestroyActionMode(ActionMode mode) {}会回调。

    这样你就可以调用你的方法 onSave()。

    如果你找不到这个方法,你可以谷歌找到你是哪个接口

    需要工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多