Neste artigo vou demonstrar a passagem de parâmetros para uma activity através de objetos do tipo Bundle.
A activity inicial tem um campo pra receber um texto e um botão com um listener.
Activity inicial: PrimeiroExemplo.java
Layout: Main
- package br.livro.android.cap2;
- import android.app.Activity;
- import android.content.*;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.*;
- import android.widget.Button;
- import android.widget.*;
- import android.widget.TextView;
- public class PrimeiroExemplo extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle icicle){
- super.onCreate(icicle);
- setContentView(R.layout.main);
- //Cria Objetos
- final EditText campoDeDigitação = (EditText) findViewById(R.id.campodedigitacao);
- //Cria botão com Listener e passagem de parâmetros.
- Intent it = new Intent(v.getContext(), TelaDois.class);
- Bundle params = new Bundle();
- params.putString("mensagem", resposta);
- it.putExtras(params);
- startActivity(it);
- }
- });
- }
- }
Para passar parâmetros de uma activity para outra, se cria um objeto do tipo Bundle e se usa o método putExtras(Bundle) na intent.
Porém, antes disso, devem ser colocados valores no objeto do tipo Bundle. No caso, como coloquei uma String, eu usei o método putString(chave, valor), mas poderia ter colocado um putBoolean no caso do valor ser um boolean e assim por diante... . O valor recebido foi a variável "resposta" que recupera o texto escrito no EditText "campoDeDigitação" com os métodos "getText()" e "toString()".
Agora vamos para a activity chamada: TelaDois
Layout: telachamada.xml
- package br.livro.android.cap2;
- import android.app.Activity;
- import android.content.*;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.*;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.TextView;
- public class TelaDois extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle icicle){
- super.onCreate(icicle);
- TextView txt = new TextView(this);
- Intent it = getIntent();
- Bundle params = it.getExtras();
- if (params != null){
- txt.setText(texto);
- setContentView(txt);}
- if (params == null){
- txt.setText("Nenhuma mensagem foi enviada");
- setContentView(txt);
- }
- }
- }
Da mesma maneira é preciso um método pra recuperar a intent, que é o "getIntent()". Após recuperada, é preciso recuperar os objetos dados como extras com o método "getExtras()". Depois se atribui ao texto "txt" o parametro String "mensagem" do Bundle da activity anterior, com o método "getString". As instruções condicionais são para o caso de nenhum parâmetro ter sido passado.
Nenhum comentário:
Postar um comentário