2015-03-13 55 views
26

Một câu hỏi Android Studio ở đây:setSupportActionBar thanh công cụ lỗi

Tôi đã tìm kiếm một câu trả lời và tôi đã thử nhiều giải pháp khả thi, nhưng không có vẻ làm việc ..

Tôi đang cố gắng để thiết lập một Action Bar Vật liệu làm theo hướng dẫn này:

http://www.android4devs.com/2014/12/how-to-make-material-design-app.html

Dưới đây là mã của tôi:

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:orientation="vertical" android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <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> 

Và cuối cùng activity.java tôi:

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 !!!! 

Lỗi: setSupporActionBar (android. support.v7.widget.Toolbar) trong ActionBarActivity cann ot được áp dụng cho (android.widget.Toolbar)

Tôi thật sự không biết phải làm gì, loại mới tại này ...

Trả lời

65

Trong Bạn Activity.java nhập khẩu android.support.v7.widget.Toolbar thay vì android.widget.Toolbar.

đúng phiên bản

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 !!!! 
+0

Nó làm việc! Cảm ơn rất nhiều ! – HGRC

+10

Sử dụng 'AppCompatActivity' thay vì' ActionBarActivity' vì Google đã khấu hao nó. – nyxaria

+0

khi tôi sử dụng thanh công cụ trong lớp android mở rộng actionbaractivity setsupportActionBar (công cụ) hiển thị lỗi setupport thanh công cụ v7 lỗi appdelegar xin vui lòng giúp tôi – Harsha

18

Trong việc sử dụng thanh công cụ, bạn nên mở rộng AppCompatActivity và sau đó nhập android.support.v7.widget.Toolbar

+1

Mở rộng 'AppCompatActivity' đã cho tôi manh mối tôi đã mất tích. –

8

Để thêm một thanh công cụ hỗ trợ thiết kế Vật liệu, các official documentation directions có lẽ là tốt nhất để làm theo.

  1. Thêm v7 appcompat support library.
  2. Làm cho hoạt động của bạn mở rộng AppCompatActivity.

    public class MyActivity extends AppCompatActivity { 
        // ... 
    } 
    
  3. Khai báo NoActionBar trong tệp kê khai.

    <application 
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" 
        /> 
    
  4. Thêm thanh công cụ vào bố cục xml của hoạt động của bạn.

    <android.support.v7.widget.Toolbar 
        android:id="@+id/my_toolbar" 
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
        ... 
        /> 
    
  5. Gọi setSupportActionBar trong hoạt động 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); 
    } 
    

Lưu ý: Bạn sẽ phải nhập khẩu sau đây trong hoạt động này.

import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
+0

Quên mở rộng AppCompatActivity và nhận được một Tài liệu tham khảo chưa được giải quyết trên setSupportActionBar. Cảm ơn! –

2

xác nhận rằng tuyên bố Manifest của bạn bao gồm android: theme = "@ style/AppTheme.NoActionBar" thẻ, như sau:

<activity 
    android:name=".PointsScreen" 
    android:theme="@style/AppTheme.NoActionBar"> 
</activity> 
Các vấn đề liên quan