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");
}