Autore Topic: onPrepareOptionsMenu  (Letto 610 volte)

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
onPrepareOptionsMenu
« il: 23 Marzo 2011, 00:48:06 CET »
0
Ciao a tutti,
gia dal titolo credo che avete capito che ho un problema con onPrepareOptionsMenu.. mi spiego meglio..
dovrei realizzare un menu diverso da quello che creo con onCreateOptionsMenu, e inoltre il menu che creo con onPrepareOptionsMenu cambia in base al menu che seleziono precedentemente..
sapete aiutarmi o magari potete farmi vedere come si potrebbe fare una cosa del genere? basta un esempio banale.. io attualmente vorrei inserire onPrepareOptionsMenu dentro a onOptionsItemSelected ma non mi sembra per niente corretto..
attendo una vostra risposta. grazie 1000 in anticipo

Offline neo2284

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:onPrepareOptionsMenu
« Risposta #1 il: 23 Marzo 2011, 18:28:37 CET »
0
Ragazzi ma nessuno sa come cambiare un menu in base al menu selezionato precedentemente?
praticamente una volta selezionato un menu come faccio per poter cambiare i menu visualizzati se mi trovo dentro a onOptionsItemSelected(MenuItem item)?
aiutatemi per favore..

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:onPrepareOptionsMenu
« Risposta #2 il: 23 Marzo 2011, 20:28:59 CET »
0
Citazione da: neo2284
io attualmente vorrei inserire onPrepareOptionsMenu dentro a onOptionsItemSelected...
Calma. Allora, premetto che non ho capito un "H" di quello che vuoi fare, ma provo a interpretare.
Prima di tutto onPrepareOptionMenu serve proprio per aggiornare il menu nell'Activity, a differenza di onCreateOptionMenu che viene inizializzato dal sistema solo la prima volta che viene visualizzato il menu, e poi mantiene quel menu per il resto del ciclo di vita dell'Activity. Ora, questo metodo non lo devi "inserire" da nessuna parte, ma dovrai fare l'override del metodo nella tua Activity, proprio come onCreateOptionMenu. Quando viene richiamato il menu dall'utente, viene chiamato onPreapareOptionMenu, ogni volta.
Domanda : tu vuoi modificare gli item del menu in base alla selezione di un item del menu che viene generato per primo ? o_O (cosa ho detto?)
Esempio : mettiamo che il menu, chiamiamolo di default, abbia un tasto che permette all'utente di visualizzare un menu esteso, piuttosto che uno ridotto. Alla selezione del suddetto tasto, "intercettato" dall'onOptionsItemSelected non fai altro che cambiare lo stato di una variabile, ad esempio :
Codice (Java): [Seleziona]
private boolean menuEsteso = false ;
/... il resto del codice .../
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_esteso :
        menuEsteso = true ;
        return true;
    /... altri "case" del menu .../
    default:
        return super.onOptionsItemSelected(item);
    }
}
Ora non fai altro che cambiare il menu nel tuo onPrepareOptionMenu in base al valore della tua variabile menuEsteso, e visualizzare uno piuttosto che l'altro.
Però prova anche un po tu a "giocare" con il codice, altrimenti dov'è il divertimento !  :-P