Beim Erweitern einer Android-Beispielaktivität, die einige andere Aktivitäten aus seinem Menü auslöst, habe ich einige Menüelemente innerhalb onOptionsItemSelected
behandelt, und einige Menüelemente (die gerade Intents ausgelöst) behandelt durch Anruf setIntent
innerhalb onCreateOptionsMenu
.Das Mischen von menuItem.setIntent mit onOptionsAtemSelected funktioniert nicht
Im Grunde so etwas wie:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
menu.add(0, MENU_ID_1, Menu.NONE, R.string.menu_text_1);
menu.add(0, MENU_ID_2, Menu.NONE, R.string.menu_text_2);
menu.add(0, MENU_ID_3, Menu.NONE, R.string.menu_text_3).
setIntent(new Intent(this, MyActivity_3.class));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch (item.getItemId())
{
case (MENU_ID_1):
// Process menu command 1 ...
return true;
case (MENU_ID_2):
// Process menu command 2 ...
// E.g. also fire Intent for MyActivity_2
return true;
default:
return false;
}
}
Offenbar in dieser Situation das Intent-Set auf MENU_ID_3 nie gefeuert, oder jedenfalls die damit verbundene Aktivität wird nie gestartet.
Android javadoc an einem gewissen Punkt geht wie < < [wenn Sie eine Absicht auf einem Menüpunkt gesetzt] und nichts anderes behandeln das Element, dann wird das Standardverhalten sein [die Aktivität mit der Absicht starten] >> .
Was bedeutet es eigentlich "und nichts anderes behandelt den Gegenstand"? Ist es genug, um falsch von onOptionsItemSelected
zurückzugeben? Ich habe auch versucht, nicht super.onOptionsItemSelected(item)
am Anfang aufrufen und nur im Standard-Schalter Fall aufrufen, aber ich hatte die gleichen Ergebnisse.
Hat jemand einen Vorschlag? Ermöglicht Android, die beiden Arten der Handhabung zu mischen?
Danke für Ihre Zeit alle.