2012-01-24 12 views
2

通常のonCreateOptionsMenuをMenuInflaterとともに使用して、アクションバーのxmlからメニューを読み込み、ハニカムですが、アイスクリームサンドイッチで何らかの理由で初めてロードされない場合、その後のアクティビティへのトリップによってアクションバーに期待されるアイテムが得られます。onCreateOptionsMenuは、アクティビティがアイスクリームサンドウィッチに初めてロードされたときに、ActionBarのアイコンやオプションを設定しません。

ここに私のonCreateOptionsMenuです:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Log.e("test", "createmenu"); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.map_menu, menu); 
    //  if (presets.size() == 0) 
    //   menu.getItem(4).setEnabled(false); 
    return true; 
} 

そして、ここでは私のメニューxmlファイルです:前に、このようなものを見た

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/info" 
    android:icon="@drawable/info" 
    android:title="Info" 
    android:showAsAction="always" /> 
<item android:id="@+id/preset" 
    android:title="Display Preset Option" 
    android:icon="@drawable/presets" 
    android:showAsAction="always" /> 
    <item android:id="@+id/favorites" 
    android:title="Favorites"   
    android:icon="@drawable/favorites" 
    android:showAsAction="always" /> 
<item android:id="@+id/add_favorite" 
    android:title="Add Favorite"   
    android:icon="@drawable/plus" 
    android:showAsAction="always" /> 
<item android:id="@+id/location" 
    android:title="Current Location" 
    android:icon="@drawable/location" 
    android:showAsAction="always" /> 
<item android:id="@+id/return_map" 
    android:title="Return to Original Map"    
    android:showAsAction="ifRoom" /> 
<item android:id="@+id/raster" 
    android:title="Show Raster" 
    android:icon="@drawable/raster" 
    android:showAsAction="always" /> 
<item android:id="@+id/query" 
    android:title="Queries" 
    android:icon="@drawable/queries" 
    android:showAsAction="always" /> 
<item android:id="@+id/displayNotes" 
    android:title="Hide Notes" /> 
<item android:id="@+id/displayPhotos" 
    android:title="Display Photos" 
    android:visible="false" /> 
<item android:id="@+id/add_note" 
    android:title="Add Note"/> 
<item android:id="@+id/help" 
    android:title="Help"/> 
<item android:id="@+id/email" 
    android:title="Email Map"/> 
</menu> 

誰ですか?

+1

'return true'ではなくreturn(super.onCreateOptionsMenu(menu));を試してください。 – CommonsWare

+0

@CommonsWareはサイコロですが、私はまだ同じ動作を見ています。 – Millec8

+0

私のためにうまく動作するサンプルプロジェクトは次のとおりです。https://github.com/commonsguy/cw-android/tree/master/Menus/ActionBarBC – CommonsWare

答えて

2

onPrepareOptionsMenu(menu)がsuper.onPrepareOptionsMenu(menu)ではなくfalseを返していて、私の問題。私はアイスクリームサンドイッチの時に何か変わったと思う。いずれにしても、同じ問題が発生している場合は、super.onPrepareOptionsMenu(メニュー)を返していて、falseではないことを確認してください。

0

これはそれを行うための正しい方法である:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menuColores: /your code here 


<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:id="@+id/menuColores" android:alphabeticShortcut="k" 
android:icon="@drawable/palette" /> </menu> 

私はアプリを開発していますし、これは私のコードのスニペット..ですそれだけで正常に動作します!場合によってはアイテムのイメージを変更するときにプロジェクトをクリーンアップする必要があります。それ以外の場合はイメージが認識されない可能性があります

+0

私の問題は、アクションバーのアイテムが初めてアクティビティを読み込んだときに表示されているのではなく、選択できないということです。 – Millec8

関連する問題