[RESOLVIDO] Não executar método onCreate() ao rotacionar tela no Android
12 respostas
eliangela
Olá, pessoal!
Estou fazendo um aplicativo para android que tem vários EditText para preencher. O problema é que, quando eu rotaciono o celular, minha Activity chama o método onCreate() de novo e reinicia a tela, apagando tudo o que o usuário já digitou.
Quero que, quando a tela seja rotacionada, ele não faça nada, mantendo o que o usuário está digitando.
Credo…achei que vc iria acabar descobrindo que basta declarar no manifest o valor correto que a activity não é recriada quando a tela é girada !
Marky.Vasconcelos
boone:
Credo…achei que vc iria acabar descobrindo que basta declarar no manifest o valor correto que a activity não é recriada quando a tela é girada !
Que seria esse atributo que voce declara na tag da activity
android:configChanges="orientation"
Mas pelo o que eu vi no codigo que usei isso, eu salvei o estado assim e carregava no onCreate:
public void onConfigurationChanged(Configuration cfg) {
saveState();
}
Não tenho certeza se o onCreate é chamado denovo (esse método faz mais coisas fora salvar o estado).
eliangela
não precisa tirar o mérito da minha solução! aquela foi a única que eu encontrei, e encontrei pesquisando sozinha.
Vou tentar o que vc sugeriu, mas por uma questão de perfomance mesmo.
msilveira.ti
Também tive esse problema.
Falei com um amigo e ele me deu essa dica, para mim funciono perfeitamente
Eu adicionei três palavras chaves para minha tela não fazer nada quando rotacionar o smartphone ou quando abrir e fechar o teclado no caso
de Milestone e companhia.
Vlw galera. Abraço!
V
Valeio_Bezerra
Não sabia dessa solução, eu coloco isso nas minhas Activitys:
Tentei usar a solução do manifest aqui, mas meu problema é que minha Activity não está definida nele (É uma listView que eu fiz).
Nesse caso a única solução seria utilizando o método onSave e onRestore?
Ivan_Alves
Zenity:
OPa galera!
Tentei usar a solução do manifest aqui, mas meu problema é que minha Activity não está definida nele (É uma listView que eu fiz).
Nesse caso a única solução seria utilizando o método onSave e onRestore?
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.
Z
Zenity
Ivan Alves:
Zenity:
OPa galera!
Tentei usar a solução do manifest aqui, mas meu problema é que minha Activity não está definida nele (É uma listView que eu fiz).
Nesse caso a única solução seria utilizando o método onSave e onRestore?
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.
É eu falei errado, ela não é uma Activity, mesmo porque o Adapter vai extender do BaseAdapter, mas de qualquer modo.
Como faria nesse caso? Porque ele fica perdendo o valor do EditText e das informações que eu digitei dentro do ListView
max.analista
Zenity:
Ivan Alves:
Zenity:
OPa galera!
Tentei usar a solução do manifest aqui, mas meu problema é que minha Activity não está definida nele (É uma listView que eu fiz).
Nesse caso a única solução seria utilizando o método onSave e onRestore?
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.
É eu falei errado, ela não é uma Activity, mesmo porque o Adapter vai extender do BaseAdapter, mas de qualquer modo.
Como faria nesse caso? Porque ele fica perdendo o valor do EditText e das informações que eu digitei dentro do ListView
Meu amigo, basta adicionar os seguintes métodos na sua Activity:
No primeiro método, ele vai salvar a sua lista serializando-a.
No segundo método, quando o flush for executado, ele vai executar o onCreate e posteriormente o este segundo método(onRestoreInstanceState) o qual irá conter a busca da lista serializada