ich mehrere Berichte über Probleme gesehen haben, wo openOptionsMenu() werden auf verschiedenen Android-Versionen arbeiten, zB:openOptionsMenu() wird in appcompat-v7 nicht funktionieren 22.1.0 oder neuer
openOptionsMenu() across android versions
aber das Problem, das ich habe, scheint mit der Version der appcompat-v7-Support-Bibliothek verwandt zu werden.
Im Wesentlichen mit den neueren Versionen von AppCompat-v7 wird das Menü Fein angezeigt, wenn openOptionsMenu() aufgerufen, wenn Ihre Tätigkeit erstreckt Aktivität wird aber nicht funktionieren, wenn Sie ActionBarActivity oder AppCompatActivity verlängern (dh verwenden Sie die Kompatibilitätsbibliothek). In älteren Versionen von appcompat-v7 funktioniert es gut.
Es ist reproduzierbar, wie folgt:
- In Android Studio, Import Sample 'ActionBarCompat-Basic'
- eine Schaltfläche, um den Bildschirm hinzufügen, die openOptionsMenu()
- Hinweis aufruft, Dies funktioniert gut, wie die alte Version der Bibliothek, appcompat-v7: 21.0.3 im Beispiel verwendet wird
- Ändern Sie die Abhängigkeit zu verwenden appcompat-v7: 23.0.1, neu aufzubauen, und wenn Sie auf die Schaltfläche das Menü klicken wird nicht erscheinen.
- ändert die Haupttätigkeit Aktivität zu verlängern (dh keine App-Kompatibilität) - es funktioniert
- ändert die Haupttätigkeit AppCompatActivity zu erweitern (dh App-Kompatibilität libarry verwenden) - es scheitert
Nach einigen Tests, ich habe festgestellt, dass dies in appcompat-v7: 22.1.0 nicht mehr funktioniert und nicht mehr in einer neueren Version dieses JARs funktioniert.
Dieses Verhalten ist auf dem Emulator und einem physischen Gerät identisch und auf den Android-Versionen 5.1.1 (23) und 2.1 (7), mit denen ich die beiden Versionen getestet habe.
Ich habe einen Kommentar zu diesem Fehler hinzugefügt: Android issue tracker bug
Irgendwelche Vorschläge, Ideen oder geschätzt Abhilfen!
-Steve
Ich erlebe den gleichen Fehler :( –