मेरे पास Activity
पर MenuItem
"स्टार्ट" के साथ एक विकल्प मेनू है। जब यह MenuItem
चुना गया है, तो मैं मेनू को बदलना चाहता हूं, इसलिए इसमें MenuItem
"रोकें" शामिल है। और आखिरकार जब "स्टॉप" चुना जाता है, तो मैं वापस "स्टार्ट" में बदलना चाहता हूं।एंड्रॉइड पर विकल्प मेनू पर मेनू मेनू कैसे बदल सकता हूं?
यहां मेरे कोड के कुछ भाग हैं जो काम नहीं कर रहे हैं। मैं दोनों "प्रारंभ" और "बंद" mymenu.xml
में सूचीबद्ध मैं चाहिए शायद हटाने "रोक" जब मेनू बनाई गई है है:
public class MyActivity extends Activity {
private boolean isStarted = false;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
menu.removeItem(R.id.stop);
inflater.inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.start:
isStarted = true;
return true;
case R.id.stop:
isStarted = false;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(isStarted) {
menu.removeItem(R.id.start);
menu.add(R.id.stop);
} else {
menu.removeItem(R.id.stop);
menu.add(R.id.start);
}
return true;
}
}
क्या आपने मेन्यू बनने पर रोक को हटाने की कोशिश की है? कोड अच्छा लग रहा है। मैं कुछ भी नहीं खोज सकता जो इसके अलावा अन्य मुद्दों का कारण बनता है। –
@ ऑक्टोवियन: मैंने 'menu.removeItem (R.id.stop) के साथ प्रयास किया; 'getMenuInflater() के बाद' 'लेकिन यह काम नहीं किया। मुझे या तो दो मेनू आइटम मिलते हैं, एक "प्रारंभ" और एक "झूठा" ("रोकना चाहिए"), या जब मुझे दिखाया जाना चाहिए तो मेनू क्रैश हो जाता है। – Jonas
आप 'removeItem()' कहां कॉल करने का प्रयास कर रहे हैं? 'OnPrepareOptionsMenu() 'में? –