Tempo de leitura: 3 minutos

Neste post vamos ver como transferir dados primitivos de uma activity para outra, isso é muito útil para preencher telas de demonstração de dados, por exemplo, em uma activity você faz um processamento de dados e deseja exibir esses dados processados em outra activity (por activity entenda simplesmente tela).

Usando o eclipse crie um novo projeto Android Application Project com os seguintes dados:

TransferindoDados_imagem1

Nomeie a activity como ActivityPrincipal e adicione nessa activity 2 TextView, 2 EditText e um Button, os textView não precisam ter o seu id modificado, modifique apenas os ids dos EditText, eu usei os nomes: edtNome, edtIdade e btnTransferir.

Crie uma segunda activity com o nome de ActivitySecundaria.

Na activity principal crie um método para associar estes componentes no código, exemplo abaixo:

[code language=”java”]

public void criarObjetos()
{
botaoTransferir = (Button)findViewById(R.id.btnTransferir);
edtNome = (EditText)findViewById(R.id.edtNome);
edtIdade = (EditText)findViewById(R.id.edtIdade);
}

[/code]

Crie um listener para escutar o evento click do botão e programe conforme o exemplo, substituindo o nome dos botões conforme você colocou.

[code language=”java”]

//Criar um listener para escutar o evento de click no botão
botaoTransferir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Cria um bundle para passar os dados para a outra Activity
Bundle b = new Bundle();
b.putString("nome", edtNome.getText().toString());
Integer idade = Integer.parseInt(edtIdade.getText().toString());
b.putInt("idade", idade);

//Cria uma intent para abrir a outra Activity
Intent telaSecundaria = new Intent(getApplicationContext(), ActivitySecundaria.class);
//adiciona os dados na instância criada
telaSecundaria.putExtras(b);
startActivity(telaSecundaria);
}
});

[/code]

Chame o método criarObjetos no método onCreate da activity, o código deve ficar mais ou menos assim:

[code language=”java”]

super.onCreate(savedInstanceState);
//Define a activity que será chamada no Create
setContentView(R.layout.activity_principal);
//Chama o método para criar instâncias dos controles da tela
criarObjetos();

[/code]

Agora altere a activity secundária para efetuar a leitura dos dados passados, para isso teremos que adicionar 2 TextView e alterar os ids, eu usei tvNome e tvIdade.

crie um método para associar os componentes da activity ao código conforme foi feito na activity principal.

[code language=”java”]
private void criarObjetos()
{
tvNome = (TextView)findViewById(R.id.tvNome);
tvIdade = (TextView)findViewById(R.id.tvIdade);
}
[/code]

agora é necessário criar um método para fazer a leitura dos dados e colocar os valores nos componentes.

[code language=”java”]

private void popularDados()
{
//Preenche uma instância de um Bundle com os dados que foram passados
Bundle b = getIntent().getExtras();
//Lê os dados do Bundle passando os dados para os componentes da Activity
tvNome.setText(tvNome.getText() + b.getString("nome"));
Integer idade = b.getInt("idade");
tvIdade.setText(tvIdade.getText() + " " + idade.toString());
}

[/code]

Agora chame os métodos no Create da activity, deve ficar mais ou menos assim

[code language=”java”]

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_secundaria);
criarObjetos();
popularDados();
}

[/code]

Estando tudo certo, basta rodar a aplicação  no emulador e o resultado deve ser mais ou menos igual às imagens abaixo.

TransferindoDados_imagem2TransferindoDados_imagem3

Código Fonte: TransferindoDadosEntreActivities

VN:F [1.9.22_1171]
Rating: 5.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Transferindo dados (tipos primitivos) entre Activities no Android, 5.5 out of 10 based on 2 ratings