55

オプションメニューのインデックスアイコンを変更するには?

ここに画像の説明を入力

アイコン(3)のことです。

これが私のコードです:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options, menu);

    return true;
}

XML ファイルは次のとおりです。

<item android:id="@+id/Bugreport"
    android:title="@string/option_bugreport" />

<item android:id="@+id/Info"
    android:title="@string/option_info" />

<item android:id="@+id/About"
    android:title="@string/option_about" />

4

13 に答える 13

64

私は完璧に機能するより簡単なソリューションを手に入れました:

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.change_pass);
        toolbar.setOverflowIcon(drawable);
于 2016-03-04T07:35:01.803 に答える
10

menu1)クラスで宣言します。

private Menu menu;

2)onCreateOptionsMenu以下を実行します。

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

3)onOptionsItemSelectedで、アイテムを取得し、必要に応じて変更を行います (アイコン、テキスト、色、背景)

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_search) {
        return true;
    }
    if (id == R.id.ventor_status) {
        return true;
    }
    if (id == R.id.action_settings_online) {
        menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.history_converted));
        menu.getItem(1).setTitle("Online");
        return true;
    }
    if (id == R.id.action_settings_offline) {
        menu.getItem(0).setIcon(getResources().getDrawable(R.drawable.cross));
        menu.getItem(1).setTitle("Offline");
        return true;
    }

    return super.onOptionsItemSelected(item);
}

:
3 つのメニュー項目がある場合:
menu.getItem(0) = 1 項目、
menu.getItem(1) = 2 項目、
menu.getItem(2) = 3 項目

これに基づいて、必要に応じて変更を加えます。

于 2016-03-18T07:58:12.550 に答える
10
//just edit menu.xml file    
//add icon for item which will change default setting icon
//add sub menus


 ///menu.xml file


    <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:title="@string/action_settings"
            android:icon="@drawable/your_icon"
            app:showAsAction="always" >

            <menu>

                <item android:id="@+id/action_menu1"
                    android:icon="@android:drawable/ic_menu_preferences"
                    android:title="menu 1" />

                <item android:id="@+id/action_menu2"
                    android:icon="@android:drawable/ic_menu_help"
                    android:title="menu 2" />

            </menu>
        </item>
于 2016-04-04T06:05:13.423 に答える
5

私の場合、これは正しく機能します:

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),
                                              R.drawable.change_pass);
toolbar.setOverflowIcon(drawable);
于 2017-05-03T12:02:49.457 に答える
4

Syed Raza Mehdi の例を使用し、互換性のためApplication themename=actionOverflowButtonStyleパラメーターを追加します。

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>

    <!-- For compatibility -->
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>

</style>
于 2016-05-10T14:13:15.753 に答える
3

あなたはこれを達成することができます

<item
    android:id="@+id/menus"
    android:actionProviderClass="@android:style/Widget.Holo.ActionButton.Overflow"
    android:icon="@drawable/your_icon"
    android:showAsAction="always">
  <item android:id="@+id/Bugreport"
   android:title="@string/option_bugreport" />

  <item android:id="@+id/Info"
  android:title="@string/option_info" />

 <item android:id="@+id/About"
   android:title="@string/option_about" />
  </item>
于 2014-10-10T13:27:21.067 に答える
1
  1. styles.xml で Actionbar のカスタム オーバーフロー アイコンを変更します。

     <resources>
        <!-- Base application theme. -->
        <style name=“MyTheme" parent="@android:style/Theme.Holo">
           <!-- Pointer to Overflow style DONT forget! -->
           <item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
        </style>
    
        <!-- Styles -->
        <style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
            <item name="android:src">@drawable/ic_your_action_overflow</item>
        </style>
     </resources>
    
  2. AndroidManifest.xmlのapplicationタグにカスタムテーマ「MyTheme」を入れる

    <application
        android:name="com.example.android.MainApp"
        android:theme="@style/AppTheme">
    </application>
    

楽しむ。@。@

于 2015-04-21T10:18:28.060 に答える
1

これが機能する可能性があることを確認してください:(kotlinで)

toolBar.menu.getItem(indexNumber).setIcon(R.drawable.ic_myIcon)
于 2020-03-09T17:00:10.603 に答える