【问题标题】:Start Action Mode from custom CursorAdapter within ListFragment从 ListFragment 中的自定义 CursorAdapter 启动操作模式
【发布时间】:2014-03-21 17:28:55
【问题描述】:

我正在尝试为上下文操作栏启动操作模式,但我遇到了问题。我正在为扩展 ListFragment 的类使用自定义 CursorAdapter,该类包含在扩展 ActionBarActivity 的类中。

结构
GameListActivity (ActionBarActivity)
---- GameListFragment (ListFragment)
---- ---- custom_adapter (CursorAdapter)

我正在尝试在 custom_adapter 中的 onClick 侦听器中启动操作模式。目前,我在 ActionBarActivity 中有 ActionMode.Callback:

public static final ActionMode.Callback AnActionMode = new ActionMode.Callback() {
    // standard funcs (onCreateActionMode, etc)
}

我觉得这似乎更适合 ListFragment,但我已经尝试过,但运气不佳。

在我的自定义 CursorAdapter 中,我有一个函数:

private void set_action_mode() {
    if (checked_count > 0)
        if (!is_action_mode_showing)
            ((GameListActivity) m_context).startActionMode(GameListActivity.AnActionMode);
}

我得到的错误是:

Error:(142, 47) error: method startActionMode in class Activity cannot be applied to given types;
required: android.view.ActionMode.Callback
found: android.support.v7.view.ActionMode.Callback
reason: actual argument android.support.v7.view.ActionMode.Callback cannot be converted to android.view.ActionMode.Callback by method invocation conversion

两个类都导入(我认为)是正确的类:

import android.support.v7.view.ActionMode;

我最初关注this 链接,但他的实现似乎也不适合我。

有什么办法可以做我正在做的事情吗?

【问题讨论】:

    标签: android android-listfragment android-cursoradapter contextual-action-bar android-actionmode


    【解决方案1】:

    我认为你应该使用

    startSupportActionMode

    而不是

    startActionMode

    希望对您有所帮助!

    PS:看看你的sintaxis。 Java 约定规定所有变量、对象或方法的名称必须以小写开头,并且不允许使用下划线。看来您正在使用 C 命名的样式。您可以在oracle tutorials 找到更多信息 和here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-29
      • 2011-06-01
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多