【问题标题】:Actionbarsherlock ActionMode in Fragment Support片段支持中的 Actionbarsherlock ActionMode
【发布时间】:2012-09-29 12:54:35
【问题描述】:

尝试在片段中使用 startActionMode,但出现此错误

mMode = startActionMode(new AnActionModeOfEpicProportions());第 55 行

http://pastebin.com/d9jzg9UC

如何解决这个问题? Fragment 不支持 ActionMode?​​p>

谢谢

【问题讨论】:

    标签: android actionbarsherlock fragment


    【解决方案1】:

    您正在尝试从 static 片段(即与 Activity 实例分离的片段)调用 Activity 的 instance 方法。请记住,您始终可以使用getActivity() 访问包含您的片段的活动。所以:

      if (getActivity() != null) {
        mMode = getActivity().startActionMode(new AnActionModeOfEpicProportions());
      }
    

    更简洁的方法是声明一个接口类来管理片段和活动之间的通信。

    【讨论】:

    • 感谢您的回复,但在我在 SO 发帖之前,我确实尝试了 getActivity()Context,但它们都不起作用,图片:i.imgur.com/YRrCU.png
    • 那是因为你不能使用“this”作为参数。您需要提供ActionMode.Callback 的实例,如this example
    • documentation 是你的朋友。
    • 感谢您的帮助。经过数小时的尝试和搜索。通过here找到答案,需要使用getSherlockActivity()不能使用getActivity()
    【解决方案2】:

    在支持库中你可以使用它:

    ((ActionBarActivity) getActivity()).startSupportActionMode (new AnActionModeOfEpicProportions());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多