J'aimerais ouvrir le menu des options de manière programmatique sans que l'utilisateur ait à cliquer sur la touche de menu. Comment faire ?
Réponses
Trop de publicités?
Robby Pond
Points
37875
Ou appelez simplement Activity.openOptionsMenu() ?
Kovač
Points
271
Royston Pinto
Points
4421
Oded Breiner
Points
1852
Cristian
Points
92147
Il y a deux façons de le faire :
Activity.getWindow().openPanel(Window.FEATURE_OPTIONS_PANEL, event);
El event
L'argument est un KeyEvent
décrivant la touche utilisée pour ouvrir le menu, ce qui peut modifier l'affichage du menu en fonction du type de clavier d'où il provient.
Ou... en simulant que l'utilisateur a appuyé sur le bouton :
IWindowManager wManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
KeyEvent kd = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SOFT_LEFT);
KeyEvent ku = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SOFT_LEFT);
wManager.injectKeyEvent(kd.isDown(), kd.getKeyCode(), kd.getRepeatCount(), kd.getDownTime(), kd.getEventTime(), true);