【问题标题】:setsupportactionbar() throws errorsetsupportactionbar() 抛出错误
【发布时间】:2015-03-24 20:45:18
【问题描述】:

我尝试按照在操作栏上方但在状态栏下方显示抽屉的步骤进行操作。在这里找到的步骤: display over the ActionBar/Toolbar and under the status bar?

但是实现代码后,抛出如下错误:
error: cannot find symbol method setSupportActionBar(Toolbar)
我在 Google 上搜索过这个确切的错误,而不是一个结果。

我正在使用 Android Studio (1.1) 并尝试使用“Clean Build”
我正在使用import android.support.v7.widget.Toolbar;

Toolbar toolbar = (Toolbar) findViewById(R.id.actionbar);
setSupportActionBar(toolbar); //error

希望有人能识别出此错误并快速给出答案 - 否则,如果需要,我可以提供更多信息。

【问题讨论】:

  • 你的课程必须扩展ActionBarActivity
  • @Blackbelt 并且不再抛出错误 - 除了应用程序现在崩溃了。但这是另一个错误。提交您的评论作为答案,我可以接受它作为解决方案。

标签: android toolbar android-support-library


【解决方案1】:

编辑

最近,ActionBarActivity 已被弃用,取而代之的是 ActionBarCompat。您应该使用新的,并将其用作ActionBarCompat 主题,例如Theme.AppCompat.Light

你的类必须扩展ActionBarActivity而不是Activity,才能使用setSupportActionBar方法

【讨论】:

  • 谢谢!这就是我要找的。​​span>
【解决方案2】:

删除:
导入android.widget.Toolbar;

添加:
导入 android.support.v7.widget.Toolbar;

【讨论】:

  • 这是与扩展 AppCompatActivity 一起修复它的原因
  • AppCompatActivity 应该被使用。 AppcompactActivity 是一个扩展 FragmentActivity 的类,它是使用支持库操作栏功能的活动的基类。所以 Activity 比所有都快,而 AppCompatActivity 是最好的。
【解决方案3】:

ActionBarActivity 现已弃用。改用 AppCompatActivity

【讨论】:

  • 如果您使用 AppCompatActivity,您还需要使用主题“Theme.AppCompat.Light.NoActionBar”
【解决方案4】:

您必须从支持包中的ActionBarActivity 扩展您的类。

【讨论】:

    【解决方案5】:

    您可以尝试投射它:

    mToolbar = (Toolbar)mFragmentView.findViewById(R.id.toolbar);
    ((ActionBarActivity)getActivity()).setSupportActionBar(mToolbar);
    

    这对我有用!

    【讨论】:

      【解决方案6】:

      对我来说,这项工作就像这样:

      import androidx.appcompat.widget.Toolbar;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        • 2011-12-27
        • 2018-08-06
        • 2011-10-17
        • 1970-01-01
        相关资源
        最近更新 更多