2017-07-28 35 views
0

我想學習如何在android中使用工具欄並嘗試在操作欄中添加菜單,但是當我運行我的預覽開始項目時,發現默認的空活動菜單欄現在缺失!我不知道爲什麼會發生這種情況。在空閒活動中缺少操作欄

這裏是我的MainActivity.xml代碼

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="ir.cupcode.artin.contact.MainActivity"> 
<ListView 
    android:id="@+id/list" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"/> 

</RelativeLayout> 

和我的代碼菜單欄中MainActivity.java塊:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menubar, menu); 
    return true; 
} 

這裏是我的menubar.xml代碼

<?xml version="1.0" encoding="utf-8"?> 

<item 
    android:id="@+id/action_refresh" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:icon="@drawable/ic_action_test" 
    android:title="Refresh"/> 
<item 
    android:id="@+id/action_settings" 
    android:title="Settings"> 
</item> 

此外,我得到了使用android:showAsAction="always",說應該使用應用程序的錯誤:showAsAction與appcombat庫

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_appicon2" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> 
    </application> 

+2

你是否將活動擴展到'AppcompatActivity'? – SripadRaj

+0

發佈您的清單 – sasikumar

+0

@SripadRaj默認其擴展! '公共類MainActivity延伸AppCompatActivity' –

回答

0

更改應用主題

android:theme="@style/Theme.AppCompat.Light.NoActionBar" 

android:theme="@style/AppTheme" 
+0

太棒了!解決了我的問題,但你能告訴我爲什麼我的應用程序設置爲android:theme =「@ style/Theme.AppCompat.Light.NoActionBar」?! –

0

更改你的主題從:

android:theme="@style/Theme.AppCompat.Light.NoActionBar" 

到:

android:theme="@style/Theme.AppCompat.Light.DarkActionBar" 
0

首先你要添加工具欄在你MainActivity.xml,裏面的相對佈局並通過ListView。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="?attr/colorPrimary" 
android:minHeight="?attr/actionBarSize" 
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
app:title="Main Activity"/> 

然後包括在您MainActivity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="ir.cupcode.artin.contact.MainActivity"> 

<include layout="@layout/toolbar" id="@+id/toolbar"> 

<ListView 
    android:id="@+id/list" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"/> 

</RelativeLayout> 

然後,你必須你可以像其命名爲「Toolbar.xml」,創造這樣的內容創建一個新的文件首先在您的應用程序中實例化工具欄。就像這樣:

yourToolbar = (Toolbar) findViewById(R.id.yourToolbar); 
setSupportActionbar(yourToolbar); 

您還可以檢查出這些論壇。

Toolbar.inflateMenu seems to do nothing

How to set menu to Toolbar in Android

希望這有助於!