Passando Dados entre Activities

É de grande importância para uma aplicação Android ser capaz de transferir dados entre suas Activities. Esses dados podem conter informações de usuário logado, de dados que são importantes para a criação da nova Activity ou mesmo dados que foram gerados numa Activity filha e estão sendo retornados ao pai. Vejamos na Listagem 6 como adicionar dados a um Intent, passando o texto digitado no campo login para a próxima tela.

Listagem 6 – Colocando dados em um Intent.

Como estudamos na primeira parte dessa aula, os Intents possuem um campo chamado extra, cuja funcionalidade é justamente armazenar informações extras. É através desse campo que passamos dados entre Activities. Para colocar esses dados, precisamos identificá-los com uma String, para que possam ser recuperados do outro lado da comunicação, e então colocarmos os dados. No exemplo, identificamos o campo com a String “login”, e o dado a ser passado é o valor contido na variável loginStr. O Android aceita diversos tipos de dados dentro dos Intents, como inteiros, shorts, longs e até mesmo serializables em geral. Colocando esses valores dentro de um Intent com Strings de identificação diferentes, é possível passar adiante várias informações. A Listagem 7 mostra como recebemos essa informação na HelloActivity iniciada.

Listagem 7a - Arquivo activity_hello.xml, representando o XML do Layout da HelloActivity.
Listagem 7b – Recebendo dados de um Intent.

Como vemos na Listagem 7, o método getIntent() é o responsável por nos retornar o Intent que chegou até essa Activity. O método getStringExtra(), chamado nesse Intent, se encarrega de extrair uma String que tenha sido colocada entre os extras. Esse método recebe como parâmetro o identificador usado anteriormente para o dado gravado nos extras. O método procura um dado do tipo String com o identificador “login” existente nos extras da Intent. No nosso exemplo, o dado encontrado é armazenado na variável dados, e depois é atribuído para exibição ao TextView da HelloActivity, através do ID que definimos para ele. Tenha cuidado ao copiar os exemplos se você está de fato utilizando os mesmos nomes para as variáveis! Nesse exemplo obtemos um extra do tipo String, mas podemos também obter outros tipos de dados através de métodos como getIntExtra(), getFloatExtra(), getBooleanExtra(), getSerializableExtra(), etc.

Também podemos retornar informações para uma Activity anterior, como veremos a seguir.

Versão 5.3 - Todos os Direitos reservados