Wie gehe ich richtig mit der Schaltfläche „Fertig“ im Aktionsmodus um?[Duplikat]
-
13-12-2019 - |
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?
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.
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