活动中的setActionBar(Toolbar)方法不适用于参数(Toolbar)

8
这是工具栏布局的XML代码...
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mToolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</android.support.v7.widget.Toolbar>

我正在使用支持库将工具栏用作我的操作栏。 我在onCreate中这样做...

Toolbar mToolbar = (Toolbar)getLayoutInflater().inflate(R.layout.toolbar, null);
setActionBar(mToolbar);

但是如果它在标题中给我红色波浪线并告诉我那个消息,我就会像“LULWUT?!”一样困惑不解。


我先尝试将布局膨胀为View,然后使用findViewById从该View中获取工具栏,但这也没有成功。 - Adam Komar
2个回答

10

你可能需要使用setSupportActionBar。使用Toolbar代表你应该使用AppCompatActivity,而所有这些都存储在appcompat(~support)库中。

编辑:如果你正在使用现已停用的ActionBarActivity,那么这个答案仍然适用,因为ActionBarActivity继承自AppCompactActivitysetSupportActionBar方法。


2

2019年更新

根据API 29,Toolbar现在位于androidx.appcompat.widget包中。因此,在布局文件中:

<androidx.appcompat.widget.Toolbar 
    android:id="@+id/toolbar"/>

在Java代码中:

import androidx.appcompat.widget.Toolbar;
...
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接