Android - Korrekte Verwendung von invalidateOptionsMenu ()

Ich habe viel auf @ gesucinvalidateOptionsMenu() und ich weiß was es macht. Aber ich kann mir kein Beispiel aus dem wirklichen Leben vorstellen, in dem diese Methode nützlich sein könnte.

Ich meine, zum Beispiel wollen wir ein neues @ hinzufügMenuItem zu unsererActionBar, wir können einfach das Menü von @ bekommonCreateOptionsMenu(Menu menu) und benutze es in der Aktion einer beliebigen Taste.

Nun zu meiner eigentlichen Frage, folgt dernu Art der Verwendung voninvalidateOptionsMenu()?

bool _OtherMenu;
protected override void OnCreate (Bundle bundle)
{
    _OtherMenu = false;
    base.OnCreate (bundle);
    SetContentView (Resource.Layout.Main);
    Button button = FindViewById<Button> (Resource.Id.myButton);
    button.Click += delegate
    {
        if(_OtherMenu)
            _OtherMenu = false;
        else
            _OtherMenu = true;

        InvalidateOptionsMenu ();
    };
}

public override bool OnCreateOptionsMenu (IMenu menu)
{
    var inflater = this.SupportMenuInflater;
    if(_OtherMenu)
        inflater.Inflate (Resource.Menu.another_menu, menu);
    else
        inflater.Inflate (Resource.Menu.main_activity_menu, menu);

    return base.OnCreateOptionsMenu (menu);
}

Klicken Sie auf die Schaltfläche, um ein anderes Menü anzuzeigen. Klicken Sie erneut auf die Schaltfläche und das vorherige Menü wird angezeigt.

P.S. Entschuldigung für die C # -Syntax.

Antworten auf die Frage(16)

Ihre Antwort auf die Frage