SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Manaus, Amazonas - Brazil
www.fundacaomatiasmachline.org.br
Desenvolvimento Mobile I
www.fundacaomatiasmachline.org.br
Roteiro de aula
Capítulo 8 – Navegação – Activities e Fragments
• O que é um Activity
• Ciclo de vida de uma Activity
• Passando dados entre Activities
• Passando objetos entre Activities
• App 6 – Cara ou Coroa
• Utilizando Fragments
• Snackbar
• FAB – FloatingActionButton
• NavigationDrawer
• Adicionando conteúdos no NavigationDrawer
• App 7 – ATM Consultoria
www.fundacaomatiasmachline.org.br
O que é uma Activity?
3
Uma "Activity" é um componente fundamental da
arquitetura de um aplicativo e representa uma única
tela com uma interface de usuário.
Em outras palavras, cada tela com a qual um usuário
interage em um aplicativo Android é geralmente
implementada como uma Activity.
Uma Activity no Android Studio é responsável por gerenciar
a interação do usuário com a interface gráfica e responde
a eventos específicos, como toques na tela,
pressionamentos de botões, entre outros.
Cada Activity possui um ciclo de vida que determina seu
estado em diferentes momentos, desde a criação até a
destruição.
www.fundacaomatiasmachline.org.br
O que é uma Activity?
4
As Activities trabalham em formato de pilha.
O empilhamento de Activities no Android segue o modelo de pilha (stack) Last In, First
Out (LIFO). Isso significa que a última Activity adicionada à pilha é a primeira a ser
removida quando o usuário pressiona o botão "Voltar" no dispositivo.
No exemplo abaixo temos uma activity que renderiza um menu, e quando ele é
selecionado, uma nova activity é adicionada na pilha, sobrepondo a anterior.
www.fundacaomatiasmachline.org.br
Criando novo projeto
5
Crie um novo projeto chamado “AulaActivity”.
www.fundacaomatiasmachline.org.br
MainActivity.java
6
A classe MainActivity herda
(extends) vários recursos da classe
AppCompatActivity.
A classe MainActivity pode
implementar vários métodos para
criar uma Activity.
O método onCreate() é chamado
quando nossa tela é criada. Nesse
método podemos usar alguns
métodos para renderizar uma
interface proveniente do XML
setContentView(), o findViewById()
para pegar a referência de uma
componente XML pelo ID.
www.fundacaomatiasmachline.org.br
Ciclo de vida de uma Activity
7
Doc:
https://developer.android.com/
reference/android/app/Activity
www.fundacaomatiasmachline.org.br
Visualizando o ciclo de uma activity
8
Toast.makeText(this, "OnCreate", Toast.LENGTH_SHORT).show();
Dentro do método onCreate() adicione a linha de código abaixo. Ela irá gerar um Toast, uma
espécie de notificação rápida na tela para vermos quando o método foi chamado.
www.fundacaomatiasmachline.org.br
Visualizando o ciclo de uma activity
9
Abaixo do método onCreate() e fora do seu escopo, vamos renderizar cada um dos demais
métodos do ciclo, exibindo um Toast correspondente a cada um deles.
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()
www.fundacaomatiasmachline.org.br
Resultado
10
www.fundacaomatiasmachline.org.br
Mudança de Activity
11
www.fundacaomatiasmachline.org.br
Ajustando o projeto
12
Vamos fazer alguns ajustes para voltar o projeto “AulaActivity” criado na primeira parte
desta aula, ao estado inicial, como se tivesse sido criado agora.
Para isto, basta apagar todos os métodos que criamos na aula anterior e deixar
somente o método onCreate.
Além disto, apague o Toast de dentro do método onCreate.
www.fundacaomatiasmachline.org.br
Criando um botão
13
No arquivo activity_main.xml apague o Hello World e
adicione um botão, alterando o texto para “Passar dados”.
Adicicione as constraints para ficar centralizado.
Altere o ID para “buttonEnviar”.
Até o presente momento, utilizamos o botão, adicionando o
atributo onclick e no MainActivity.java, criamos um método
para ser executado quando o botão for clicado.
Faremos um pouco diferente desta vez.
Vamos adicionar um evento de click neste botão, por isso
precisamos que ele tenha um ID.
www.fundacaomatiasmachline.org.br
public class MainActivity extends AppCompatActivity {
private Button buttonEnviar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonEnviar = findViewById(R.id.buttonEnviar);
buttonEnviar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Código a ser executado quando botão for clicado
}
});
}
}
Adicionando um evento de click
14
Cria-se um atributo
Associa-se o atributo a um
elemento pelo ID
Adiciona um método de escuta
de clique que instancia um
novo método que implementa
o onClick de fato.
Antes nós criávamos somente
um método igual a este.
www.fundacaomatiasmachline.org.br
Criando uma nova activity
15
Para que possamos passar dados de uma activity
para outra, precisamos de uma segunda activity.
www.fundacaomatiasmachline.org.br
Criando uma
nova activity
16
1 2
3
4
www.fundacaomatiasmachline.org.br
Criando uma nova
activity
17
Renomeie com “SegundaActivity”.
Ao clicar em “Finish”, também será
criado a activity_segunda.xml
www.fundacaomatiasmachline.org.br
Não confunda os nomes
18
A partir deste momento, iremos manipular 4 arquivos diferentes que
trabalham em pares:
1. Activity_main.xml e MainActivity.java
2. Activity_segunda.xml e SegundaActivity.java
www.fundacaomatiasmachline.org.br
Activity_segunda.xml
19
1 – Adicione um TextView na activity_segunda.xml.
2 - Defina o text como “Nome” , o textSize como “30sp” e
centralize.
3 – Adicione um novo TextView abaixo do anterior, altere text
e adicione o número 0 e por fim, textSize 18sp.
Selecione ambos os componentes e use o infer constraint
para alinha-los ao meio.
www.fundacaomatiasmachline.org.br
MainActivity.java
20
Volte no MainActivity.
Dentro do método onClick() podemos passar para outra activity chamando o método
startActivity().
www.fundacaomatiasmachline.org.br
MainActivity.java
21
Contudo, para utilizar o método startActivity(), preciso informar dentro do parêntese uma intent.
A tradução de intent é intenção, logo preciso dizer qual a tela que tenho a intenção de mudar
quando o botão for clicado.
Uma Intent é como um objeto e para ser passada, precisa ser instanciada.
www.fundacaomatiasmachline.org.br
MainActivity.java
22
No construtor da intent eu devo passar dois parâmetros:
Contexto da aplicação Activity a ser chamada
Não esquecer do .class
www.fundacaomatiasmachline.org.br
MainActivity.java
23
Pronto, agora você poderá fazer transições de telas
tranquilamente.
Observe que a activity_segunda.xml é carregada por cima
da activity_main.xml, formando a pilha de activities.
www.fundacaomatiasmachline.org.br
Passando dados entre Activity
24
www.fundacaomatiasmachline.org.br
Passando dados de MainActivity.java para
SegundaActivity.java
25
Para passar valores de uma
activity para outra, usamos
um método putExtra() que é
chamado a partir de um
intent, no nosso exemplo,
essa intent se chama
segunda.
www.fundacaomatiasmachline.org.br
Passando dados de MainActivity.java para
SegundaAcitivity.java
26
Posso passar qualquer tipo de dado
pelo método putExtra(), por isso é
necessário informar dois parâmetros:
uma string e um valor.
A string vai se comportar como uma
chave. É por meio dela que vamos
usar o dado na
SegundaActivity.java.
O valor é o próprio valor, que pode ser
qualquer tipo, inclusive array. É esta
informação que será recuperada na
outra Activity.
www.fundacaomatiasmachline.org.br
Passando dados de MainActivity.java para
SegundaAcitivity.java
27
String (chave) Valor
www.fundacaomatiasmachline.org.br
Passando dados de MainActivity.java para
SegundaAcitivity.java
28
String (chave) Variável que armazena o valor
Posso ainda passar valores de variáveis. Neste exemplo foi criado uma variável local, mas poderia
ser criado uma variável global, de forma que esse método pudesse vê-la.
www.fundacaomatiasmachline.org.br
activity_segunda.xml
29
Altere os ID dos componentes nome para
“textNome” e do text que tem o número
zero, altere o ID para “textIdade”.
www.fundacaomatiasmachline.org.br
SegundaActivity.java
30
1 - Crie um atributo para cada textView.
2 - Dentro do onCreate(), use o
findViewById para pegar as
referências de cada elemento pelo ID.
//Faça um comentário como na imagem
pois abaixo dele iremos recupera os
dados do ActivityMain.java.
www.fundacaomatiasmachline.org.br
SegundaActivity.java
31
Para recuperar dados precisaremos de
um objeto Bundle (em português,
Pacote).
Neste exemplo, o objeto dados está
sendo instanciado a partir da classe
Bundle.
Ao construir o objeto dados, posso
invocar duas classes necessárias:
getIntent() : serve para identificar
nossa intenção (passar dados).
getExtras() : serve para indicar quais
dados.
Copie este código dentro do onCreate()
www.fundacaomatiasmachline.org.br
SegundaActivity.java
32
Como o objeto dados é uma espécie de
pacote como o próprio nome já diz, ele
recupera um um objeto (chave: valor).
dados = { “Gabriel”, 27};
Lembra que fizemos um putExtra desse dois dados?
www.fundacaomatiasmachline.org.br
SegundaActivity.java
33
Para que possamos guardar os dados
vindo a MainActivity.java, criamos duas
variáveis, uma String nomeNovo e outra
int novaIdade.
Para acessarmos o que foi passado pelo
putExtras() e armazenar nessas variáveis,
usaremos o objeto dados que conhece os
dados recuperados da MainActivity.
Com dados.getString( “nome”) estamos
declarando que queremos recuperar um
dado do tipo string que tem a chave (key)
“nome”.
Fazemos o mesmo com a idade, contudo,
utilizamos o get+respectivo tipo de dado
a ser recuperado: getInt(“idade”);
getInt(“chave”) para Inteiro
getString(“chave”) para String
getDouble(“chave”) para Double
www.fundacaomatiasmachline.org.br
SegundaActivity.java
34
Agora vamos só precisamos pegar os
dados guardados na variável nomeNovo
e novaIdade nos respectivos TextView.
Só um detalhe. O setText só seta valores
string, por isso que na hora de passar a
idade, usamos um método da classe
String chamado valueOf() e dentro dele
passamos a variável do tipo inteira.
Esse método converte valores do tipo
int, double, float e demais em string.
www.fundacaomatiasmachline.org.br
Finalmente...
35
Pronto, basta testar seu app.
www.fundacaomatiasmachline.org.br
Exercício
36
• Faça um aplicativo que permita o usuário informar o nome e 3 notas em uma
activity.
• Em outra activity, faça o calculo da média e apresente as notas + média.
I2A - Ok
I2B - Ok
Obrigado!
www.fundacaomatiasmachline.org.br

Mais conteúdo relacionado

Semelhante a Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf

Android app communication
Android app communicationAndroid app communication
Android app communicationEloi Júnior
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Apresentação aula 2 android
Apresentação aula 2 androidApresentação aula 2 android
Apresentação aula 2 androidAlex Braz
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)Ricardo Longa
 
Android Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu AndroidAndroid Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu AndroidHeider Lopes
 
Dê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com AndroidDê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com AndroidRodolfo Faquin Della Justina
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1Lucas Aquiles
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoMarcio Palheta
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionala41172
 
Curso Android - 03 Conceitos Chaves
Curso Android - 03 Conceitos ChavesCurso Android - 03 Conceitos Chaves
Curso Android - 03 Conceitos ChavesRonildo Oliveira
 
Entenda o ciclo de vida das entidades jpa
Entenda o ciclo de vida das entidades jpaEntenda o ciclo de vida das entidades jpa
Entenda o ciclo de vida das entidades jpaMoisesInacio
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APIRicardo Ogliari
 

Semelhante a Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf (20)

Android app communication
Android app communicationAndroid app communication
Android app communication
 
Android Para Iniciantes
Android Para IniciantesAndroid Para Iniciantes
Android Para Iniciantes
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Apresentação aula 2 android
Apresentação aula 2 androidApresentação aula 2 android
Apresentação aula 2 android
 
React js
React js React js
React js
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)
 
Android Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu AndroidAndroid Wear: Expandindo as funcionalidades do seu Android
Android Wear: Expandindo as funcionalidades do seu Android
 
Dê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com AndroidDê seus primeiros passos no desenvolvimento com Android
Dê seus primeiros passos no desenvolvimento com Android
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Cap9
Cap9Cap9
Cap9
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissional
 
Curso Android - 03 Conceitos Chaves
Curso Android - 03 Conceitos ChavesCurso Android - 03 Conceitos Chaves
Curso Android - 03 Conceitos Chaves
 
Entenda o ciclo de vida das entidades jpa
Entenda o ciclo de vida das entidades jpaEntenda o ciclo de vida das entidades jpa
Entenda o ciclo de vida das entidades jpa
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
 

Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf