android - एक्शन बार में विकल्प मेनू आइकन कैसे बदलें?




android-actionbar android-menu (7)

विकल्प मेनू के इंडेक्स आइकन को कैसे बदलें?

मेरा मतलब है आइकन (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" />


  1. Action.xml में एक्शनबार के अपने कस्टम अतिप्रवाह आइकन को बदलें

     <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 के एप्लिकेशन टैग में कस्टम थीम "MyTheme" डालें

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

मज़े करो।@।@


1) अपनी कक्षा में menu घोषणा करें।

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 iteam,
menu.getItem (2) = 3 आइटम

इसके आधार पर अपनी आवश्यकता के अनुसार बदलाव करें।


निम्नलिखित पंक्तियों को ऐप में अपडेट किया जाना चाहिए -> मुख्य -> ​​Res -> मान -> Styles.xml

 <!-- 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>
</style>

<!-- Style to replace actionbar overflow icon. set item 'android:actionOverflowButtonStyle' in AppTheme -->
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_launcher</item>
    <item name="android:background">?android:attr/actionBarItemBackground</item>
    <item name="android:contentDescription">"Lala"</item>
</style>

ऐसा ही किया जा सकता है। यदि आप एक्शन बार में ओवरफ्लो आइकन बदलना चाहते हैं


मुझे एक सरल समाधान मिला जो मेरे लिए पूरी तरह से काम करता है:

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.change_pass);
        toolbar.setOverflowIcon(drawable);

यह मेरे मामले में ठीक से काम करता है:

Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),
                                              R.drawable.change_pass);
toolbar.setOverflowIcon(drawable);

विकल्प मेनू इंडेक्स आइकन का रंग बदलने का एक छोटा और आसान तरीका है:

<!-- android:textColorSecondary is the color of the menu overflow icon (three vertical dots) -->
<item name="android:textColorSecondary">@color/optionMenuIconColor</item>

शैली में .xml (कस्टम थीम) फ़ाइल में कोड की उपरोक्त पंक्ति जोड़ें, आशा है कि आपको उत्तर मिलेगा, धन्यवाद।


//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>




android-icons