Buscar

Programação Mobile

Prévia do material em texto

Elaborado por Fabrício Curvello 
 
APP Passar dados entre Activities 
Passo a passo 
 
1 – Criar a tela do APP. Não esquecer dos ids das Views. É interessante que o EditText aceite apenas 
números: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 – No MainActivity.java, referenciar o EditText e o Button. Também criar o Listener para o Button: 
 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
 
public class MainActivity extends AppCompatActivity { 
 
 private Button btEnviar; 
 private EditText etIdade; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 
 btEnviar = findViewById(R.id.btEnviar); 
 etIdade = findViewById(R.id.etIdade); 
 
 btEnviar.setOnClickListener(new View.OnClickListener() { 
 @Override 
 public void onClick(View v) { 
 
 } 
 }); 
 } 
} 
 
 
Elaborado por Fabrício Curvello 
 
3 – Criar uma nova Activity: (Botão direito na PASTA – PACOTE) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 – Faça a Segunda Activity ficar como esta ao lado. Só foram 
utilizadas 3 TextViews. Não esqueça dos ids: 
 
 
 
 
 
 
 
 
 
 
Elaborado por Fabrício Curvello 
 
5 – De volta à classe MainActivity.java, dentro do método onClick() do Listener, inserir o código que dará 
início à SegundaActivity 
 
//Iniciar a SegundaActivity 
Intent intent = new Intent(getApplicationContext(), SegundaActivity.class); 
startActivity(intent); 
 
OBS: Já dá pra executar e testar. Ao clicar no botão da activity_main, será iniciada a activity_segunda. Mas 
ainda não estamos passando dados entre as Activities. 
 
 
 
6 – Para passar a idade pra Segunda Activity, será preciso capturar a idade inserida no EditText, convertê-la 
para int e depois colocá-la na intent. Modifique o conteúdo do método onClick() em MainActivity.java para 
que fique assim: 
 
//Capturar a idade que está no EditText e converter para int 
int idade = Integer.parseInt( etIdade.getText().toString() ); 
 
//Criar Intent que vai iniciar a SegundaActivity 
Intent intent = new Intent(getApplicationContext(), SegundaActivity.class); 
 
//Passar dados pela intent 
intent.putExtra("idadeInserida", idade); 
 
//Iniciar a intent. 
startActivity(intent); 
 
 
 
7 – Na SegundaActivity.class, vincule as views necessárias: 
 
import android.os.Bundle; 
import android.widget.TextView; 
 
public class SegundaActivity extends AppCompatActivity { 
 
 private TextView tvIdade; 
 private TextView tvResposta; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_segunda); 
 
 tvIdade = findViewById(R.id.tvIdade); 
 tvResposta = findViewById(R.id.tvReposta); 
 } 
 
8 – Continuando no método onCreate() da SegundaActivity.java, recupere os dados que foram enviados 
pela intente e os coloque nas respectivas Views para exibição: (Como foi passado um int, será necessário 
converter para String para que a TextView possa recebe-lo: 
 
//Recuperar os dados que foram enviados pela intent 
Bundle dados = getIntent().getExtras(); 
int idade = dados.getInt("idadeInserida"); 
 
//Inserindo a idade recuperada na TextView. Necessário converter para String. 
tvIdade.setText( String.valueOf( idade )); 
 
OBS: Dá pra executar e testar. Só está faltando a ação para a última TextView que irá apontar se você é 
menor de idade ou maior de idade. 
 
Elaborado por Fabrício Curvello 
 
9 – Finalizando com a lógica para indicar se é menor ou maior de idade: 
 
//Verificando se é menor ou maior de idade para exibir na tvResposta 
if ( idade < 18 ) { 
 tvResposta.setText("Você é menor de idade"); 
} else { 
 tvResposta.setText("Você é maior de idade"); 
} 
 
OBS: Execute e veja os resultados de acordo com as idades inseridas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
DESAFIO: Observe que se nenhuma idade for inserida o app dá erro. Tente corrigir isso!

Continue navegando