Passar informações entre uma activity e outra é um processo muito simples no Android, nesse primeiro tutorial vou demonstrar como passar Strings entre telas, no segundo tutorial explico como passar um um objeto próprio entre telas.

Não vou gastar tempo explicando como as telas são montadas, nesse tutorial vamos usar duas telas onde na Tela1 teremos um campo EditText e um Button, e na Tela2 teremos um TextView.

OBS: Lembrando que o mais indicado para adicionar textos aos seus elementos de layout é sempre usar o arquivo strings.xml, nesse caso não estou usado apenas para ser mais rápido pois se trata de um tutorial.
XML da Tela1 :
[xml]

[/xml]

XML Tela2:
[xml]

[/xml]

Passando Strings de uma Activity para outra:
Agora vamos ao que interessa, vamos passar a String digitada no EditText da Tela1 para o ser exibida no TextView da tela2.

Vamos implementar o método abrirTela2() que vai ser chamado pelo Button como vocês podem ver no arquivo de layout da Tela1: “android:onClick=”abrirTela2”.

Para passar informações entre as telas vamos usar um objeto do tipo Bundle que nada mais é do que uma coleção de elementos “chave/valor” parecido com um Array.

Segue o código comentado do método abrirTela2():
[java]
public void abrirTela2(View v){
// Pega o EditText na tela
EditText editText = (EditText)findViewById(R.id.editText);
// Pega o conteúdo do EditText
String texto = editText.getText().toString();

// Cria o Intent para chamar a Tela2
Intent intentTela2 = new Intent(this, Tela2.class);

// Cria um Bundle que vai passar as informações de uma tela para a outra
Bundle infos = new Bundle();

// Adiciona a informação que quer passar informando uma chave e a String
infos.putString(“editText”, texto);

// Adiciona o Bundle a intent que vai ser chamada
intentTela2.putExtras(infos);

// Abre a Tela2
startActivity(intentTela2);
}
[/java]
Vocês pode escrever esse método logo após o onCreate().

Agora vamos implementar a Activity Tela2 para que ela receba as informações passadas.

Dentro do onCreate() vamos recuperar os dados usando uma Intent sendo instanciada pela Intent da própria Activity e criar um Bundle para recuperar os dados, segue o código comentado:

[java]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tela2);

// Pega o TextView da tela
TextView textView = (TextView)findViewById(R.id.textViewRes);

// Cria um intent recebendo a Intent atual para receber os dados que foram passados pela Tela1
Intent intent = getIntent();

// Recupera o Bundle que foi passado
Bundle infos = intent.getExtras();
// Recupera o texto que foi passado com a chave “editText”
String texto = infos.getString(“editText”);

textView.setText(texto);
}
[/java]

Pronto! Segue as imagens do teste:

Captura de Tela 2015-04-30 às 08.44.43

Captura de Tela 2015-04-30 às 08.45.03

No próximo tutorial vou mostrar como passar um Objeto entre as telas! Vlw