2013-02-21 11 views
13

オプションメニューでアイコンを表示するには次のコードを試しましたが、私のオプションメニューに画像アイコンがありません。アプリを開発するためにアンドロイドバージョン4.0を使用しています。アイコン付きのアンドロイドオプションメニュー

Javaコード

public boolean onCreateOptionsMenu(Menu menu) { 
      super.onCreateOptionsMenu(menu); 
      menu.add("Add Contacts").setIcon(
        R.drawable.ic_launcher); 

      return true; 
     } 

続いて私のアプリの画面が

enter image description here

を撮影している私は、イメージが "連絡先を追加" 項目の上に表示する必要があります。

+0

その良い質問を。あまりにもそれが答えを持っていない悪い。これらの方法のいずれも機能しません。 –

答えて

3

あなたは、このようなカスタムメニューを作成することができます

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/add_contacts" 
      android:icon="@drawable/ic_launcher" 
      android:title="@string/add_contacts" 
     /> 
</menu> 

をそしてここで、この上

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

もっとそれを膨らま:あなたは直接XMLにこれを設定することができます http://developer.android.com/guide/topics/ui/menus.html#options-menu

+1

私はこれを試したが、イメージは来ていない。 – sonia

+0

http://stackoverflow.com/questions/8306943/android-menu-icons-are-not-displaying-when-the-api-level-is-above-10 – nedaRM

3

ファイル。

<item android:id="@+id/add_contacts" 
    android:icon="@android:drawable/plus_icon" 
    android:title="Add Contacts"/> 
1

この後にお試しください。Link

これをチェックして、機能しているかどうかを教えてください。

または、このようなことをすることができます。
はmenu.xmlに

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:id="@+id/next" 
       android:icon="@drawable/ic_next" 
       android:title="@string/next" /> 
     <item android:id="@+id/previous" 
      android:icon="@drawable/ic_previous" 
      android:title="@string/previous" /> 
     <item android:id="@+id/list" 
      android:icon="@drawable/ic_list" 
      android:title="@string/list" /> 
</menu> 

を作成します。そして今、あなたは

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

CreateOptionMenu

で今

メニュー

上のアイコンを設定し、そのメニューにアクセスすることができるようになります。

public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.next: 
      Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option", 
         Toast.LENGTH_SHORT).show(); 
      return true; 
     … 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 
+2

同じアイコンが表示されていません。 – sonia

+0

Ohk次に、menu.xmlファイルを作成することで試してみることができます。メニュー項目を設定してICONを設定することもできます。 –

+0

そのコードをチェックして、回答を編集しました。それが動作するかどうか、私に知らせてください。 –

1

マニフェストファイルにいくつかの次の属性を使用している場合、...それは私のための仕事の罰金だ

<activity android:name=".ui.CategoryActivity" 
     android:label="@string/app_name" 
     **android:theme="@android:style/Theme.NoTitleBar"**></activity> 

....私自身のために:) +1をあなたのアイコンが表示されますです努力...

**入力する必要があります。

3

オーバーライドOnPrepareOptionsMenuとあまりにもそこから

をアイコンを追加し、その上で3.0の場合、XMLでandroid:showAsActionを使用しています。

例えば、 android:showAsAction="ifRoom|withText"

0

問題はAndroidmanifest.xmlです。android:theme="@style/AppTheme"を削除 、それは私が2行のコードを試してみました

2

うまく動作しますし、それが動作します:

public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     menu.add("Add Contacts"); 
     menu.getItem(0).setIcon(R.drawable.ic_launcher); 
     return true; 
} 
関連する問題