Frage

Mögliches Duplikat:
Wie rufe ich das ContextMenu-ähnliche Verhalten der ActionBar auf?
So erkennen Sie, ob im ActionMode auf die Schaltfläche „Fertig“ geklickt wird

Wie gehe ich richtig mit der Schaltfläche „Fertig“ im Aktionsmodus um?

Action mode done button

Ich führe einige Vorgänge an einem Objekt im Aktionsmodus durch und möchte das Ergebnis durch Klicken auf diese Schaltfläche speichern – z. B. „Speichern und Beenden“.Wie kann ich einen Tastendruck auf diese Schaltfläche auslösen?

Die einzige Möglichkeit, die ich sehe, besteht darin, die Methode onDestroyActionMode (ActionMode-Modus) mit Flags zu überschreiben, die in „dispatchKeyEvent“ (KeyEvent-Ereignis) ausgelöst werden, um zu behandeln, ob sie durch das Drücken der „Zurück“-Taste verursacht wurde.

Logcat:

„Fertig“ gedrückt

10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode  

„Zurück“ gedrückt

10-03 14:32:01.771: D/DISPATCH(967):   Action: 0/n  Keykode: 4  
10-03 14:32:01.911: D/DISPATCH(967):   Action: 1/n  Keykode: 4  
10-03 14:32:01.911: D/DESTROY(967): onDestroyActionMode

Aber es sieht nicht nach einer guten Praxis aus.Gibt es eine „schöne“ Lösung?

UPD:Ich weiß, wie man den Aktionsmodus aufruft und Aktionselementereignisse in ActionMode.Callback verarbeitet, aber wie kann ich das Drücken der „Fertig“-Taste abfangen, um sein Verhalten zu ändern? Die Schaltflächen „Zurück“ und „Fertig“ führen beide zu ActionMode.Callback'S onDestroyActionMode() Anruf.

War es hilfreich?

Lösung

Dieses Muster wird CAB (Contextual Action Bar) genannt.Bitte werfen Sie einen Blick auf die Menüführung und suchen Sie auf der offiziellen Website nach CAB: Verwendung des kontextbezogenen Aktionsmodus

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top