Reputation: 567
I've been looking for an answer and I've tried many possible solutions, but nothing seems to work..
I'm trying to setup a Material Action Bar following this tutorial.
Here's my code:
tool_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ColorPrimary"
android:elevation="4dp">
</android.support.v7.widget.Toolbar>
activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF">
<!-- The main content view -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/tool_bar" />
</RelativeLayout>
<!-- Navigation Drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="220dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#1C1C1C"
android:divider="@android:color/darker_gray"
android:dividerHeight="1dp" />
</android.support.v4.widget.DrawerLayout>
And finally my activity.java:
import android.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toolbar;
public class rutaActivity extends ActionBarActivity {
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); //HERE'S THE PROBLEM !!!!
Error:
setSupporActionBar (android.support.v7.widget.Toolbar) in ActionBarActivity cannot be applied to (android.widget.Toolbar)
How can I fix this?
Upvotes: 55
Views: 207403
Reputation: 2628
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 !!!!
Update:
If you are using androidx, replace
import android.support.v7.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
with newer imports
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
Upvotes: 174
Reputation: 953
For Android version above 3:
import androidx.appcompat.widget.Toolbar;
For Android version below 3:
import android.widget.Toolbar;
Upvotes: 8
Reputation: 310
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
Upvotes: 1
Reputation: 1325
In using toolbar you should extends AppCompatActivity and
import android.support.v7.widget.Toolbar
Upvotes: 23
Reputation: 192
Just change
import android.widget.Toolbar;
To
import android.support.v7.widget.Toolbar;
Upvotes: 1
Reputation: 17
import android.support.v7.widget.Toolbar;
import it into your java class
Upvotes: -1
Reputation: 583
class must be extend of AppCompatActivity to resolve the problem of setSuppertActionBar that is not recognizable
Upvotes: 1
Reputation: 51
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
Upvotes: 5
Reputation: 557
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
Upvotes: 2
Reputation: 1388
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
Upvotes: 0
Reputation: 372
In You MainActivity.java import android .support.v7.widget.Toolbar insert of java program
Upvotes: -2
Reputation: 251
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>
Upvotes: 2
Reputation: 511926
For adding a ToolBar that supports Material Design, the official documentation directions are probably the best to follow.
Make your activity extend AppCompatActivity
.
public class MyActivity extends AppCompatActivity {
// ...
}
Declare NoActionBar
in the Manifest.
<application
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
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"
...
/>
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;
Upvotes: 19