Entendi o problema, uma possível solução é o seguinte, a partir do Bundle
recebido no onCreate()
podemos verificar se algum valor existe a partir de uma chave, portanto, inicialmente, podemos verificar se existe a chave "numero". Por exemplo:
private int numero;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
if(bundle != null && !bundle.containsKey("numero")){
//inicializa o número nesse caso iniciei com 0 como exemplo.
numero = 1;
}
}
Veja que dentro do onCreate()
verificamos se o bundle
é null
e, ao mesmo tempo, verificamos se ele não contém a chave "numero", caso esse teste dê certo, significa que não temos algum número salvo, ou seja, podemos inicializá-lo, nesse exemplo eu coloquei o valor 0, no seu caso, você adiciona o valor inicial que desejar. Note também que estou utilizando um atributo para armazenar esse valor, justamente para que ele possa ser utilizado nos outros métodos da Activity
que salva e recupera o valor.
Então, adicionamos o método onSaveInstanceState
:
@Override
protected void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
//Assim que rotacionar ou acontecer qualquer evento que reinicie a activity
//Vai salvar o atributo numero com a chave "numero"
bundle.putInt("numero", numero);
}
A partir desse método, antes que a Activity seja reiniciada ou destruída, o atributo numero
será salvo a partir da chave "numero". Mas aí, como recuperamos esse valor? Simples! Basta implementar o método onRestoreInstanceState
:
@Override
protected void onRestoreInstanceState(Bundle bundle) {
super.onRestoreInstanceState(bundle);
//você verifica se o bundle existe, caso sim, você verifica se tem essa chave "numero"
//Se tiver, você atribui o valor do inteiro por meio da chave "numero"
if (bundle != null && bundle.containsKey("numero")){
//Dessa forma você recupera o valor que estava anteriormente
numero = bundle.getInt("numero");
}
}
A partir desse método todas as vezes que a activity for reiniciada, ele será chamado, ou seja, o valor do atributo numero
será atribuído novamente, em outras palavras, será recuperado.
Acredito que isso resolva o seu problema, tenta aí e veja se da certo.
Abraços.