Visualizzazione stampabile
-
Salve
Salve a tutti.
Sono alle prese con un problema che credo abbia rigurdato molti che come me adesso muovevano i primi passi nel mondo Android: Ho recentemente realizzato la mia prima applicazione, un tris. Adesso ho deciso di raffinarlo. La prima cosa che avevo pensato di fare era di fare in modo che quando ruotassi lo schermo l' applicazione si ricordasse i pulsanti premuti ed il turno di gioco. Per fare questo ho sfruttato la funzione
codice:
onSaveInstanceState(Bundle savedInstanceState)
per salvare gli stati dei vari bottoni ed il turno di gioco. Per ripristinare il tutto dopo la rotazione ho usato
codice:
onRestoreInstanceState(Bundle savedInstanceState)
Ora ho però diversi problemi. Se faccio partire il codice tutto va bene, ma appena clicco su un pulsante l' applicazione crasha. Se invece appena fatto partire l' emulatore ruoto lo schermo e poi clicco su un bottone tutto va bene. Se però dopo lo ruoto ancora non mi salva nulla, ed è come se la partita ricominciasse da zero. Per una maggiore chiarezza metto il codice delle funzioni a disposizione
codice:
public void onSaveInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt("turno_giocatore",turnoGiocatore);
savedInstanceState.putInt("elemento_matrice00", matrice[0][0]);
savedInstanceState.putInt("elemento_matrice01", matrice[0][1]);
savedInstanceState.putInt("elemento_matrice02", matrice[0][2]);
savedInstanceState.putInt("elemento_matrice10", matrice[1][0]);
savedInstanceState.putInt("elemento_matrice11", matrice[1][1]);
savedInstanceState.putInt("elemento_matrice12", matrice[1][2]);
savedInstanceState.putInt("elemento_matrice20", matrice[2][0]);
savedInstanceState.putInt("elemento_matrice21", matrice[2][1]);
savedInstanceState.putInt("elemento_matrice22", matrice[2][2]);
}
codice:
public void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
savedInstanceState.getInt("turno_giocatore");
savedInstanceState.getInt("elemento_matrice00");
savedInstanceState.getInt("elemento_matrice01");
savedInstanceState.getInt("elemento_matrice02");
savedInstanceState.getInt("elemento_matrice10");
savedInstanceState.getInt("elemento_matrice11");
savedInstanceState.getInt("elemento_matrice12");
savedInstanceState.getInt("elemento_matrice20");
savedInstanceState.getInt("elemento_matrice21");
savedInstanceState.getInt("elemento_matrice22");
}
-
Il metodo onRestoreInstanceState non ripristina nulla: leggi i valori dal Bundle con getInt ma non li inserisci in nessuna variabile.
-
Quote:
Originariamente inviato da
zacky
Il metodo onRestoreInstanceState non ripristina nulla: leggi i valori dal Bundle con getInt ma non li inserisci in nessuna variabile.
concordo. zacky per caso giochi a urban terror? casomai dimmi il team...io sn goofy
-
Quote:
Originariamente inviato da
canaja
zacky per caso giochi a urban terror? casomai dimmi il team...io sn goofy
No, non ci ho mai giocato.
-
Quote:
Originariamente inviato da
zacky
Il metodo onRestoreInstanceState non ripristina nulla: leggi i valori dal Bundle con getInt ma non li inserisci in nessuna variabile.
Quindi se io, dopo aver letto i valori con getInt, li inserissi in delle variabili potrebbe funzionare?
-
Quote:
Originariamente inviato da
riise90
Quindi se io, dopo aver letto i valori con getInt, li inserissi in delle variabili potrebbe funzionare?
Non ho visto tutto il programma, sicuramente qulla parte è errata perché non ripristini il valore nelle variabili, dopo averlo fatto potrebbe funzionare o potrebbero esserci altri errori... da provare. ;)
Ciao!