Ho visto diverse segnalazioni di problemi in cui openOptionsMenu() non funziona su varie versioni di Android, come ad esempio:openOptionsMenu() non funziona in appcompat-v7 22.1.0 o più recente
openOptionsMenu() across android versions
ma il problema che ho sembra essere correlato alla versione della libreria di supporto appcompat-v7 utilizzata.
In sostanza, con le versioni più recenti di appcompat-v7 il menu apparirà bene quando openOptionsMenu() si chiama se la vostra attività si estende Attività ma non funziona se si estende ActionBarActivity o AppCompatActivity (vale a dire utilizzare la libreria di compatibilità). Nelle versioni precedenti di appcompat-v7 funziona perfettamente.
E 'riproducibile, come segue:
- In Android Studio, Import Sample 'ActionBarCompat-base'
- aggiungere un pulsante sullo schermo, che invoca openOptionsMenu()
- Si noti che ciò funziona, poiché nell'esempio è utilizzata la versione precedente della libreria, appcompat-v7: 21.0.3
- Modificare la dipendenza da utilizzare appcompat-v7: 23.0.1, ricompilare e quando si fa clic sul pulsante il menu sarà non.
- modificare l'attività principale di estendere attività (cioè senza applicazione compatibilità) - funziona
- modificare l'attività principale di estendere AppCompatActivity (vale a dire utilizzando la compatibilità app libarry) - non riesce
Dopo alcuni test, ho Ho scoperto che questo ha smesso di funzionare in appcompat-v7: 22.1.0 e non funzionerà più in nessuna versione più recente di questo jar.
Questo comportamento è identico sull'emulatore e su un dispositivo fisico e su Android versioni 5.1.1 (23) e 2.1 (7) che erano le due versioni con cui l'ho testato.
ho aggiunto un commento a questo bug: Android issue tracker bug
Eventuali suggerimenti, idee o soluzioni alternative apprezzato!
-Steve
sto vivendo lo stesso problema :( –