Buscar

Aula 06 Navegando entre telas Android Dispositivos Moveis

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

CCT0080 – Programação para Dispositivos Móveis
Aula 06: Navegando entre telas Android
Componentes da Interface gráfica do usuário
Métodos do Activity de navegação entre telas
A classe Intent
Navegação simples entre telas
Navegação com retorno de resposta entre telas
Passagem de parâmetros entre telas
Passando classes como parâmetro entre telas
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Métodos do Activity de navegação entre telas
Métodos da Activity de navegação entre telas
É usado para designar tela do aplicativo
Podemos incluir elementos visuais, no qual os usuários realizam interações
É possível o processo de interação por diversas atividades, que compõe o aplicativo.
Para cada Activity incluída no projeto, temos dois arquivos:
Lógica de programação - .java
Leiaute da interface gráfica em um arquivo XML
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Navegação Simples entre telas
A classe Intent
Através do objeto da classe Intent, possível fazer a conexão entre duas atividades.
É possível trocar dados entre as atividades
A criação do objeto Intent
Dois parâmetros:
O contexto da atividade atual
A atividade que será chamada
Intent it = new Intent(this, Atividade2.class);
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Navegação Simples entre telas
Método putEXTRA
O método putExtra("chave","valor") serve para adicionar um objeto o valor para uma intent para enviar para outra Activity.
O método getExtra("chave") serve para recuperar o valor enviado a uma Activity.
CHAVE – representa o identificador do parâmetro passado
VALOR – define o conteúdo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Passagem de parâmetros entre telas
Exemplos
it.putEXTRA(“nome”, “João Silva”);
it.putEXTRA(“idade”, 23);
it.putEXTRA(“altura”, 1.76);
String nome = it.getStringEXTRA(“nome”);
int idade = it.getIntEXTRA(“idade”);
double altura = it.getDoubleEXTRA(“altura”);
Atividade 1
Atividade2
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Passagem de parâmetros entre telas
Chamando e capturando as Atividades
startActivity( it ) ;
Intent it = getIntent();
Atividade 1
Atividade2
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Navegação Simples entre telas
onBackPressed
Efetua o retorno a atividade principal;
Equivale ao botão voltar do dispositivo;
A Atividade 2 é fechada e a Atividade 1 reexibida;
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Exercício
Implementar um programa de Cadastro
Ler Nome, Altura e Idade e enviar para uma outra Atividade.
Na Atividade Rela, Receber e mostrar os Dados.
Disponibilizar um botão para voltar.
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Exercício
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public class PrincipalActivity extends AppCompatActivity {
 private EditText edtNome;
 private EditText edtAltura;
 private EditText edtIdade;
 private Button btnEnvia;
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_principal);
 edtNome = (EditText)findViewById(R.id.edtNome);
 edtIdade = (EditText)findViewById(R.id.edtIdade);
 edtAltura = (EditText)findViewById(R.id.edtAltura);
 btnEnvia = (Button)findViewById(R.id.btnEnvia);
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void enviaDados(View view){
 Intent it = new Intent(this,RelatActivity.class);
 it.putExtra("nome", edtNome.getText().toString());
 it.putExtra("idade", edtIdade.getText().toString());
 it.putExtra("altura", edtAltura.getText().toString());
 startActivity(it);
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
RelatActivity.java
public class PrincipalActivity extends AppCompatActivity {
 private EditText edtNome;
 private EditText edtAltura;
 private EditText edtIdade;
 private Button btnEnvia;
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
RelatActivity.java
public class RelatActivity extends AppCompatActivity {
 private TextView txtNome;
 private TextView txtIdade;
 private TextView txtAltura;
 private Button btnVoltar;
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
RelatActivity.java
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_relat);
 txtNome = (TextView)findViewById(R.id.txtNome);
 txtIdade = (TextView)findViewById(R.id.txtIdade);
 txtAltura = (TextView)findViewById(R.id.txtAltura);
 btnVoltar = (Button)findViewById(R.id.btnVoltar);
 Intent it = getIntent();
 String nome = it.getStringExtra("nome");
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
RelatActivity.java
 String idade = it.getStringExtra("idade");
 String altura = it.getStringExtra("altura");
 txtNome.setText(txtNome.getText().toString()+nome);
 txtIdade.setText(txtIdade.getText().toString()+idade);
 txtAltura.setText(txtAltura.getText().toString()+altura);
 btnVoltar.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) { trataBtnVoltar(v); } }); }
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
RelatActivity.java
private void trataBtnVoltar(View v) {
 onBackPressed();
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Exercício
Faça um programa em Android com as seguintes Funcionalidades:
Solicitar um Nome, um telefone e Discar
Solicitar uma Mensagem e Enviar o SMS
Solicitar uma URL e Navegar
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Exercício
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void trataDiscar(View view){
 Toast.makeText(this, "Tel "+edtTelefone.getText(), Toast.LENGTH_LONG).show();
 //Telefone que será Discado
 Uri uri = Uri.parse("tel:"+edtTelefone.getText().toString());
 //Criar o Intent para Aquele Telefone
 Intent intent = new Intent(Intent.ACTION_DIAL,uri);
	startActivity(intent);
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void trataNavegar(View view){
 Toast.makeText(this,"URL "+edtUrl.getText(),Toast.LENGTH_LONG ).show();
 //Endereço que será Aberto
 Uri uri = Uri.parse("http://" + edtUrl.getText().toString());
 //Criar o Intent para Aquele Endereço
 Intent intent = new Intent(Intent.ACTION_VIEW,uri);
 startActivity(intent);
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void trataEnviar(View view){
 Toast.makeText(this,"SMS "+edtTelefone.getText(),Toast.LENGTH_LONG ).show();
//Telefone de destino da mensagem
 Uri uri = Uri.parse("smsto:"+edtTelefone.getText().toString());
 	//Criar o Intent para enviar a mensagem
	Intent it = new Intent(Intent.ACTION_SENDTO, uri);
	//Insere o corpo da Mensagem por parâmetro
 it.putExtra("sms_body", edtMsg.getText().toString());
 startActivity(it); 
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void trataEnviar(View view){
			// Até a Versão KitKat, o código era assim
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("vnd.android-dir/mms-sms");
intent.putExtra("address", edtTelefone.getText().toString());
intent.putExtra("sms_body",edtMsg.getText().toString());
startActivity(intent);
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
Envio de SMS
Desenvolvendo Programa para Envio de SMS
Solicitar
Telefone
A Mensagem
Enviar o SMS
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
PrincipalActivity.java
public void trataEnviar(View view){
				// Este código envia o SMS!
 Log.i("Send SMS", "");
 String phoneNo = edtTelefone.getText().toString();
 String message = edtMsg.getText().toString();
 try {
 SmsManager smsManager = SmsManager.getDefault();
 smsManager.sendTextMessage(phoneNo, null, message, null, null);
 Toast.makeText(getApplicationContext(), "SMS Enviado.", Toast.LENGTH_LONG).show();
 }
 catch (Exception e) {
 Toast.makeText(getApplicationContext(), "SMS Falhou, por favor tente novamente.", Toast.LENGTH_LONG).show();
 e.printStackTrace();
 }
}
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto
AndroidManifest.xml
				Permissão para enviar o SMS!
Colocar esta linha no Android Manifest
<uses-permission android:name="android.permission.SEND_SMS" />
Antes do Aplication
Exemplo
Programação para Dispositivos Móveis
AULA 06: Navegando entre telas Android
Prof. Eduardo Luiz Pareto

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando