setSupportActionBar toolbar cannot be applied to (android.widget.Toolbar) error

六月ゝ 毕业季﹏ 提交于 2019-11-27 19:15:16
Mohit Singh

In your Activity.java import android.support.v7.widget.Toolbar instead of android.widget.Toolbar:

import android.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.Toolbar;


public class rutaActivity extends AppCompactActivity {

private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ruta);

    getSupportActionBar().hide();//Ocultar ActivityBar anterior

    toolbar = (Toolbar) findViewById(R.id.app_bar);
    setSupportActionBar(toolbar); //NO PROBLEM !!!!
Kirti Chaturvedi

In using toolbar you should extends AppCompatActivity and

import android.support.v7.widget.Toolbar 

For adding a ToolBar that supports Material Design, the official documentation directions are probably the best to follow.

  1. Add the v7 appcompat support library.
  2. Make your activity extend AppCompatActivity.

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. Declare NoActionBar in the Manifest.

    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. Add a toolbar to your activity's xml layout.

    <android.support.v7.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       ...
       />
    
  5. Call setSupportActionBar in the activity's onCreate.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
    }
    

Note: You will have to import the following in the activity.

import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
Messou

For Android version above 3:

import androidx.appcompat.widget.Toolbar;

For Android version below 3:

import android.widget.Toolbar;

Certify that your Manifest declaration includes android:theme="@style/AppTheme.NoActionBar" tag, like the following:

<activity
    android:name=".PointsScreen"
    android:theme="@style/AppTheme.NoActionBar">
</activity>

Adding import android.support.v7.widget.Toolbar to the import list resolve this issue.

Then add the toolbar widget layout file:

<android.support.v7.widget.Toolbar
    android:id="@+id/list_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="?attr/actionBarTheme"
    />

In onCreate method of java code

//call to

Tootbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);

Source: https://developer.android.com/training/appbar/up-action

Fa-C-Shus

With the addition of androidx in Studio 3.0+ the Toolbar compatibility is now in a new library, accessible like this

import androidx.appcompat.widget.Toolbar

class must be extend of AppCompatActivity to resolve the problem of setSuppertActionBar that is not recognizable

Samer Kasseb

Just change

import android.widget.Toolbar;

To

import android.support.v7.widget.Toolbar;

I was using previously this code:

Toolbar toolbar =  findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

and extended AppCompatActivity also but I was getting the same error. So in place of using Toolbar class, I have imported the below class and it worked for me:

android.support.v7.widget.Toolbar

I'm having the same problem. My Logcat says

java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor

I have already an action bar so when i use setSupportActionBar(toolbar); my app gets an error for this conflict. To fix this problem add NoActionBar in your app theme style resource file.

Change this

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light">

To this

<style name="ParentMaterialTheme" parent="Theme.AppCompat.Light.NoActionBar">

ToolBar's name can easily be changed using

android:label="My Activity"

in your Manifest File. I just going through Manifest & found

android:label 

Helps to change according to the specific activity, Hope you'll give it a try

Vickie Kangare
import android.support.v7.widget.Toolbar;

import it into your java class

In You MainActivity.java import android .support.v7.widget.Toolbar insert of java program

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!