quarta-feira, 25 de abril de 2012

Android: Passagem de parâmetros entre Activities(Telas)

Neste artigo irei demonstrar a passagem de parâmetros entre duas Activities(Telas). No post anterior utilizamos o método startActivity(intent) para navegar entre as telas da aplicação.

Irei criar uma aplicação básica como exemplo para demostrar a passagem de parâmetros entre Telas. Na primeira tela terá um campo para receber um texto e um botão que ao clicar passará o valor para a segunda tela.
  1. Crie um novo Projeto com o nome "PassagemParametros".
  2. Na Primeira Activity "PassagemParametros.java" será a nossa primeira Tela.

  3. Para passar parâmetros se usa a classe android.os.Bundle e o método putExtras(Bundle) na intent que será passado como parâmetro para a próxima tela.
    O método putString(chave, valor) utilizei uma String como parâmetro, mas poderia ter usado putInt no caso o valor ser um integer. A classe Bundle tem métodos para diferentes tipos primitivos como o putBoolean, putChar, putFloat e vários outros. A variável "valor" recupera o texto da EditText do "campoTexto" utilizando os métodos "getText" e "toString".

    Ao executar vejamos como ficou:

  4. Agora irei criar a segunda Activity "SegundaTela.java" que receberá o valor da primeira tela.
    O método getIntent() recupera os parâmetros enviados. Depois de recuperada o método getExtras() retorna o mesmo bundle criado para enviar os parâmetros.
    Para ler os parâmetros passados pelo bundle basta chamar o método getString e passar o parâmetro String "mensagem" da activity anterior.
    Ao executar novamente vejamos como ficou:

    Até a próxima, espero que tenham gostado.

25 comentários:

  1. Respostas
    1. Obrigada Ana Patrícia, fico muito feliz por ter gostado!!!

      Excluir
  2. Fiz igual seu tutorial... na hora de abrir nova activity da erro e fecha a aplicacao

    ResponderExcluir
    Respostas
    1. Vc precisa acrescentar a activity nova no AndroidManifest do seu projeto.

      Excluir
  3. Olá Juliana, tudo bem?
    Eu gostaria de saber como faz para mandar o parâmetro que eu recebi da primeira tela na segunda tela para uma terceira tela. Entendeu?
    Ou seja, na activity PassagemParametros eu mando o parametro "mensagem" para a segunda tela, aí na segunda tela mando o mesmo parâmetro "mensagem" que recebi da tela passagemparametros para uma terceira tela.

    ResponderExcluir
    Respostas
    1. Oi Juliana, curti muito seu tutorial. Estou com a mesma dúvida da Anita.

      Excluir
  4. Thiago veja se sua segunda activity esta declarada no manifest abraços.

    ResponderExcluir
  5. Poxa juliana, você não tem ideia do quanto você me ajudou viu. Já estava quebrando a cabeça tentando resolver isso aki e já nem sabia mais como. Curti muito o blog.

    ResponderExcluir
  6. Primeiramente parabéns pelo exemplo. Mais tenho uma pequena duvida, como faço pra exibir os demais componentes da tela2 caso eu precise de adicionar?
    Grato !!

    ResponderExcluir
    Respostas
    1. Bom pra quem tiver a mesma duvida ai vai um exemplo que me ajudou. http://www.youtube.com/watch?v=sQs1keB6Yic

      Excluir
  7. Show de bola.. Gênia... estava precisando muito disso..

    ResponderExcluir
  8. Juliana, parabéns.
    Estou vendo que você é fera em eclipse-android e gostaria de uma ajuda se possível !!
    1º pegar o nome do contato da ligação em curso em outra tela
    2º coloquei um cronometro nesta tela e preciso encerrar a ligação apos um tempo determinado.
    Desde já agradeço.
    Luiz Carlos

    ResponderExcluir
  9. Parabéns pelo exemplo Juliana, foi muito útil para mim. Sou iniciante na programação em Java/Android e tenho uma dúvida. Como eu posso utilizar o seu exemplo para enviar parametros para um listview em outra activity?
    Desde já agradeço pela atenção.
    Diogo Leal

    ResponderExcluir
  10. Não me ajudou em nada. Está faltando o Formulario que tive que fazer e quando rodou só deu erro !!!!

    ResponderExcluir
  11. olá, tudo bem? Estou com uma duvida: se nessa sua primeira activity, vc adicionasse o valor do editText em uma variavel e em seguida abrisse a segunda activity, como voltar para a primeira activity e manter o valor na variavel? desde já agradeço...

    ResponderExcluir
  12. Eita mulé retada, sô!!!
    rsrs

    a coisa funciona mesmo.

    ResponderExcluir
  13. Olá Juliana,
    Parabéns pelo artigo você superou em muito a maneira com que meu professor tinha ensinado,com clareza,simplicidade e uma ótima didática. Por favor continue a fazer mais artigos e ajudar a todos. Obrigado!

    ResponderExcluir
  14. Excelente explicação, muito obrigado!

    ResponderExcluir
  15. Ótima explicação. Gostaria de saber como receber os dados enviados da tela 1, passados(recebidos) na tela 2, e recebe-los novamente na tela 3? Não consigo passar essa informação (EditText) para mais de uma tela.

    ResponderExcluir
  16. valeu , quebrou um galho aqui, iniciante no android.

    ResponderExcluir