Widziałem kilka raportów o kwestiach, w których openOptionsMenu() nie będzie działać na różnych wersjach Androida, np:openOptionsMenu() nie będzie działać w AppCompat-v7 22.1.0 lub nowszy
openOptionsMenu() across android versions
ale wydaje się, że problem jest związany z wersją używanej biblioteki pomocy appcompat-v7.
W istocie, z nowszymi wersjami AppCompat-v7 menu będą wyświetlane poprawnie, gdy openOptionsMenu() nazywa jeśli aktywność rozciąga Aktywny ale nie będzie działać, jeśli przedłużyć ActionBarActivity lub AppCompatActivity (tj. skorzystaj z biblioteki kompatybilności). W starszych wersjach appcompat-v7 działa dobrze.
To jest powtarzalny, co następuje:
- W Android Studio, import Sample 'ActionBarCompat elitarny'
- Dodaj przycisk na ekranie, który wywołuje openOptionsMenu()
- Należy pamiętać, że działa to dobrze, ponieważ starsza wersja biblioteki, appcompat-v7: 21.0.3, jest używana w próbce
- Zmień zależność, aby użyć appcompat-v7: 23.0.1, przebudować, a po kliknięciu przycisku menu będzie nie pojawi się.
- Zmień główną działalność rozszerzyć aktywność (czyli nie app kompatybilność) - działa
- zmienić główne aktywności przedłużyć AppCompatActivity (czyli używając kompatybilności aplikacji libarry) - to nie
Po kilku testach, ja Zauważyliśmy, że przestało to działać w appcompat-v7: 22.1.0 i nie będzie działało w żadnej nowszej wersji tego słoika.
To zachowanie jest identyczne na emulatorze i fizycznym urządzeniu, a na wersjach Androida 5.1.1 (23) i 2.1 (7) dwie wersje, z którymi go przetestowałem.
Dodałem komentarz do tego błędu: Android issue tracker bug
jakieś sugestie, pomysły lub obejścia doceniane!
-Steve
mam przeżywa ten sam błąd :( –