2015-10-13 44 views
0

這是主要活動,因爲 您可以清楚地看到import android.support.v7.widget.Toolbar;已經存在。setSupportActionBar(工具欄)運行時錯誤即使導入android.support.v7.widget.Toolbar


package app.com.example.anandujjwal.zoom; 

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


public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getSupportActionBar().hide(); 
     Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

主要活動xml文件如下。 有一個在符合setSupportActionBar(toolbar)


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".MainActivity"> 

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

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

styles.xml是運行時錯誤低於


<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">#006400</item> 
     <item name="android:windowActionBar">false</item> 
     <item name="android:textColorPrimary">#FFFFFF</item> 
     <item name="android:textColorSecondary">#FFFFFF</item> 
    </style> 

</resources> 
+0

如果你打算使用工具欄作爲ActionBar,你的主題應該擴展'Theme.AppCompat.Light.NoActionBar'。然後擺脫'getSupportActionBar()。hide()'。 –

+0

remove'getSupportActionBar()。hide();' –

回答

1

,請嘗試使用AppCompatActivity代替ActionBarActivity的。

爲什麼你在之前調用hide()?您應該也可以刪除該片段。 對於樣式文件 - 顏色不應該進行硬編碼,可以考慮在color.xml中創建顏色資源。

如果它沒有幫助,請發佈您的logcat。

乾杯

3

使用這種在styles.xml:在OnCreate

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#069985</color> 
    <color name="colorPrimaryDark">#068573</color> 
    <color name="colorAccent">#fff</color> 
</resources> 

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorPrimary</item>  
</style> 

創造價值colors.xml與此代碼

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

您的toobar xml是right

相關問題