2016-05-16 4 views
0

私のアプリでは2つのアクティビティがあります。私は、デフォルトのアクションバーに2つのメニュー項目を設定したいと思います。彼らはメインアクティビティで正しく設定されますが、他のアクティビティではバーには表示されません。ラベル付きのアクションバーは表示されますが、アクションメニューは表示されません。 デフォルトのアクションバーは、メインアクティビティにのみアクションメニュー項目を表示します

<activity 
     android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 


    <activity 
     android:name=".SecondActivity"> 
    </activity> 

</application> 

メニュー項目:ここで

は、マニフェストファイルである

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/Settings" 
    android:icon="@drawable/ic_settings_white_48dp" 
    android:onClick="onClickDoAction" 
    app:showAsAction="ifRoom|withText" 
    android:title="Settings"> 
</item> 

<item 
    android:id="@+id/Share" 
    android:icon="@drawable/ic_share_white_48dp" 
    android:onClick="onClickDoAction" 
    app:showAsAction="ifRoom|withText" 
    android:title="Share"> 
</item> 

スタイル:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:windowBackground">@color/background</item> 
</style> 

そしてMainActivity:

public class MainActivity extends AppCompatActivity { 
    ... 
@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, menu); 
    return true; 
} 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); 
    return true; 
} 
私はすべての活動にすぎなどがある)onCreateOptionsMenu(呼び出す必要があり、SecondActivityに私はこの点では何も行われていないことを言及

}

?...

答えて

1
getMenuInflater().inflate(R.menu.menu, menu); 

この行現在ActivityMenuItemを追加します。あなたはActivityごとにこれを行う必要があります。あなたは、各Activityで同じメニューを持っている場合


、あなたはスーパークラスでこれを呼び出し、すべての活動は、それを拡張することができます。これは重複コードを減らすのに役立ちます。

+0

私は多くの検索を行い、すべてのアクティビティでそれを呼び出す必要があることを明示していないので、アプリ内のすべてのアクティビティに伝播するマニフェストファイルの設定がないと考えました。私は間違っていたようだ...ありがとう! – Rucsi

関連する問題