Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取v7 compat ActionBarContainer_Android_Android Actionbar Compat - Fatal编程技术网

Android 获取v7 compat ActionBarContainer

Android 获取v7 compat ActionBarContainer,android,android-actionbar-compat,Android,Android Actionbar Compat,作为我正在开发的应用程序的一部分,我正在尝试获取对ActionBar的容器视图的引用。我使用了来自的答案,只要所讨论的Android设备运行的是API级别11或更高,它就可以很好地为我工作。然而,该应用程序需要在API级别9之前运行(目标API级别为19),姜饼设备给我带来了问题。我最初在项目中使用Sherlock,但最近改为使用v7 compat库。我可以在姜饼设备上以正常方式查看操作栏并与之交互(按钮工作等),但当我尝试获取容器时,操作栏失败。我使用的代码是这样的(注意-它在ActionBa

作为我正在开发的应用程序的一部分,我正在尝试获取对
ActionBar
的容器视图的引用。我使用了来自的答案,只要所讨论的Android设备运行的是API级别11或更高,它就可以很好地为我工作。然而,该应用程序需要在API级别9之前运行(目标API级别为19),姜饼设备给我带来了问题。我最初在项目中使用Sherlock,但最近改为使用v7 compat库。我可以在姜饼设备上以正常方式查看操作栏并与之交互(按钮工作等),但当我尝试获取容器时,操作栏失败。我使用的代码是这样的(注意-它在
ActionBarActivity
的子类中运行):

在被询问之前,回答几个问题:

  • resId在v11及以上设备上解析为正确的ID值,但在v11之前的设备上解析为0
  • 使用它的代码有适当的检查来处理空结果,这就是为什么我只吃异常。try/catch块通常就在那里,以防出现异常情况,
    ClassCastException
    抛出(它永远不应该抛出,因为容器是
    FrameLayout
    的子类)
  • 我已经检查并重新检查了我的导入;我所有的
    ActionBar
    引用(以及所有相关的东西,比如我正在扩展的
    ActionBarActivity
    超类)都是v7 compat库版本,而不是标准库版本
  • action\u bar\u容器
    ID应该存在于v7 compat库中

  • 在这一点上我几乎没有主意了。有什么简单的东西我遗漏了吗?如果您有任何建议,我们将不胜感激。如果您需要更多的上下文/说明,请告诉我。

    我认为您的错误在于

    int resId = getResources().getIdentifier("action_bar_container", "id", "android");
    

    对于api级别我认为您的错误在

    int resId = getResources().getIdentifier("action_bar_container", "id", "android");
    

    先生,就api级别而言,您是一位绅士和学者。这完全成功了。非常感谢。令人惊叹的。你救了我的命,先生,你是一位绅士和学者。这完全成功了。非常感谢。令人惊叹的。你救了我一天。