È chiaro per Activities
- il metodo viene chiamato prima che venga visualizzato il menu. Ma per quanto riguarda quando è sempre visualizzato? Come attivarlo per essere richiamato per aggiornare dinamicamente menuItems
?Quando e quanto spesso viene chiamato il metodo onPrepareOptionsMenu() per ActionBar?
risposta
Utilizzare invalidateOptionsMenu() per attivare il metodo onPrepareOptionMenu() come suggerito dal documento.
On Android 3.0 and higher, you must call invalidateOptionsMenu() when you want to update the menu, because the menu is always open. The system will then call onPrepareOptionsMenu() so you can update the menu items.
Se si utilizza ActionBarSherlock, è possibile utilizzare il metodo di attività: supportInvalidateOptionsMenu(); Se sei in un frammento, chiama getActivity(). SupportInvalidateOptionsMenu(); anziché – edrian
Nota se la versione min SDK è inferiore a nido d'ape (aka Android 3.0 aka livello di API 11), e si utilizza ActionBarActivity si può chiamare supportInvalidateOptionsMenu() che è la versione della libreria di supporto di invalidateOptionsMenu ().
Se il tuo menu cambia in base a un intento in entrata su onCreate(), puoi semplicemente eseguire gli aggiornamenti in onPrepareOptionMenu(), se cambierai dinamicamente il menu più avanti nel ciclo di vita delle attività dovrai chiamare invalideOptionsMenu, o supportoInvalidateOptionsMenu a seconda delle versioni di sdk min e target.
- 1. perché il mio onPrepareOptionsMenu non viene chiamato?
- 2. Quando viene chiamato il metodo IEnumerator.Reset()?
- 3. Quando viene chiamato il metodo layoutSubviews?
- 4. Quale metodo viene chiamato quando viene selezionato un oggetto QGraphicsI
- 5. Quale metodo viene chiamato quando chiudo un'app
- 6. MongoDB: quanto spesso dovresti aprire e chiudere il database? Perché?
- 7. UICollectionReusableView non viene chiamato il metodo
- 8. Quando viene chiamato il metodo getView() di ListView?
- 9. Quale metodo viene chiamato su UIView quando viene ridimensionato dall'autolayout?
- 10. non onPrepareOptionsMenu sempre chiamato in Fragments
- 11. Quando viene chiamato il metodo di finalizzazione nell'unità?
- 12. AjaxComplete chiamato a spesso
- 13. Quando viene chiamato ServiceConnection.onServiceDisconnected()?
- 14. Quando viene chiamato il metodo onCreate di SQLiteOpenHelper?
- 15. Quando viene chiamato il metodo contrassegnato con @PostConstruct?
- 16. Perché il metodo toString() viene chiamato quando stampo un oggetto?
- 17. Il metodo onPreferenceChange non viene chiamato quando si modifica Listpreferences
- 18. Perché viewDidUnload viene chiamato meno spesso di viewDidLoad?
- 19. Il metodo Mailer non viene chiamato?
- 20. ListFragment onPrepareOptionsMenu chiamato prima onCreate. Perché e come risolvere/bypassare?
- 21. WebView: Il metodo WebViewClient.onPageStarted non viene chiamato
- 22. onCreateView() chiamato troppo spesso a preferenza personalizzato
- 23. View.onDraw() --- quando viene chiamato?
- 24. Quando viene chiamato CanExecute?
- 25. Il metodo virtuale non viene chiamato
- 26. Quando viene chiamato didRegisterForRemoteNotificationsWithDeviceToken?
- 27. Quando viene chiamato viewDidLoad?
- 28. Cosa viene chiamato dopo il metodo onConfigurationchanged()
- 29. Il metodo onActivityResult non viene chiamato Android
- 30. esegue il metodo (magico) quando il metodo esistente è chiamato
È possibile utilizzare il metodo onPrepareOptionsMenu() per abilitare/disabilitare in modo efficiente gli elementi o modificare in modo dinamico il contenuto. – Nepster