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.
[quote=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 ![/quote]
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).
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.
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.
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?
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?[/quote]
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.
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?[/quote]
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.[/quote]
É 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
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?[/quote]
Até onde eu sei para abrir um Activity ela deve estar declarada no seu AndroidManifest.xml.[/quote]
É 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[/quote]
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
e o restante do código é setando essa lista na sua ListView.