यह एक मेनू के लिए मेरा लेआउट है।
आइटम पर ध्यान दें:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_best_stores"
android:title="@string/showStores"
android:onClick="showHideStores"
android:enabled="true"
android:checkable="true"
app:showAsAction="never"
/>
</menu>
यह onAction फ़ंक्शन है।
public void showHideStores(MenuItem m) {
m.setChecked(!m.isChecked());
SHOWING_STORES = !SHOWING_STORES;
showStoresProcess(SHOWING_STORES);
refreshData();
invalidateOptionsMenu();
}
जब भी मैं अपना प्रोग्राम चलाता हूं, तो फंक्शन काम करता है क्योंकि जो चीजें होनी चाहिए, होती हैं। सिवाय, उस भाग के लिए जहां आइटममेनु स्वयं बदल जाता है ... यह सिर्फ कुछ भी नहीं करता है, चेकबॉक्स अनियंत्रित रहता है ... मैंने सेटटाइटल की भी कोशिश की, कुछ भी नहीं बदलता है।
इसलिए, लाइन 1 किसी भी परिवर्तन का उत्पादन नहीं कर रहा है।
क्या हो रहा है?
यह वह कोड है जहां मैं मेनू को बढ़ाता हूं
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_list_actions, menu);
super.onCreateOptionsMenu(menu);
this.menu = menu;
refreshData();
return true;
}
ध्यान दें कि फ़ंक्शन कैसे काम करता है क्योंकि स्क्रीन बदल जाती है, लेकिन मेनू को "चेक आउट" या "अनियंत्रित" नहीं मिलता है।
2 जवाब
समस्या को इस प्रकार समझाया गया है:
- जब आप
invalidateOptionsMenu()
कॉल करते हैं, तो यह डिफ़ॉल्ट मेनू पर रीसेट हो जाएगा। तो कुछ नहीं हुआ।
हल: ओवरराइड करें एक > ()
@override
public bool onPrepareOptionsMenu(Menu menu)
{
super.onPrepareOptionsMenu(menu);
MenuItem m = memenu.findItem(R.id.YourItemId);
m.setChecked(!m.isChecked());//something like this
return true;
}
invalidateOptionsMenu()
अपनी कॉल निकालें। onCreateOptionsMenu()
कॉलिंग onCreateOptionsMenu()
पर कॉल बैक करने जा रही है, जो एक नया मेनू बनाने जा रहा है, जो एक नया संयुक्त राष्ट्र-चेक MenuItem
बनाएगा, मूल रूप से वही जिसे आप हल करना नहीं चाहते हैं। ।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।