setsupportactionbar() 抛出错误

Posted

技术标签:

【中文标题】setsupportactionbar() 抛出错误【英文标题】:setsupportactionbar() throws error 【发布时间】: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 并且不再抛出错误 - 除了应用程序现在崩溃了。但这是另一个错误。提交您的评论作为答案,我可以接受它作为解决方案。 【参考方案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;

【讨论】:

以上是关于setsupportactionbar() 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

setsupportactionbar() 抛出错误

片段内的 setSupportActionBar

setSupportActionBar()方法报错

使用 setSupportActionBar 后删除 Toolbar 作为操作栏

Android学习——setSupportActionbar传入实例报错

Android 数据绑定 SetSupportActionBar