Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

PROGRAMAÇÃO 
CODING (MOBILE)
Unidade 3
Gerenciando o APP 
android
CEO 
DAVID LIRA STEPHEN BARROS
Diretora Editorial 
ALESSANDRA FERREIRA
Gerente Editorial 
LAURA KRISTINA FRANCO DOS SANTOS
Projeto Gráfico 
TIAGO DA ROCHA
Autoria 
LUIZ FERNANDO CORCINI
4 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
A
U
TO
RI
A
Luiz Fernando Corcini
Olá. Sou graduado em Engenharia Eletrônica, especializado 
em Administração de TI, mestre em Educação e Novas Tecnologias 
e Doutorando em Sistemas Tutores Inteligentes. Tenho experiência 
técnico-profissional na área de desenvolvimento e gestão da 
produção de software nas áreas de Gerenciamento de Processos 
Empresariais. Uso os recursos disponibilizados pela web há mais 
de 20 anos. Sou professor universitário há mais de 15 anos e já 
publiquei vários livros técnicos sobre assuntos voltados à área 
de informática. Sou apaixonado pelo que faço e adoro transmitir 
minha experiência de vida àqueles que estão iniciando em suas 
profissões. Por isso fui convidado pela Editora Telesapiens a 
integrar seu elenco de autores independentes. Estou muito feliz 
em poder ajudar você nessa fase de muito estudo e trabalho. 
Conte comigo! 
5PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
ÍC
O
N
ES
Esses ícones aparecerão em sua trilha de aprendizagem nos seguintes casos:
OBJETIVO
No início do 
desenvolvimento 
de uma nova 
competência. DEFINIÇÃO
Caso haja a 
necessidade de 
apresentar um novo 
conceito.
NOTA
Quando são 
necessárias 
observações ou 
complementações. IMPORTANTE
Se as observações 
escritas tiverem que 
ser priorizadas.
EXPLICANDO 
MELHOR
Se algo precisar ser 
melhor explicado ou 
detalhado. VOCÊ SABIA?
Se existirem 
curiosidades e 
indagações lúdicas 
sobre o tema em 
estudo.
SAIBA MAIS
Existência de 
textos, referências 
bibliográficas e links 
para aprofundar seu 
conhecimento.
ACESSE
Se for preciso acessar 
sites para fazer 
downloads, assistir 
vídeos, ler textos ou 
ouvir podcasts. 
REFLITA
Se houver a 
necessidade de 
chamar a atenção 
sobre algo a 
ser refletido ou 
discutido.
RESUMINDO
Quando for preciso 
fazer um resumo 
cumulativo das últimas 
abordagens.
ATIVIDADES
Quando alguma 
atividade de 
autoaprendizagem 
for aplicada. TESTANDO
Quando uma 
competência é 
concluída e questões 
são explicadas.
6 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
SU
M
Á
RI
O
Ciclo de vida do aplicativo Android e classe Activity ............... 9
Introdução ............................................................................................................. 9
Gerenciando aplicativos ...................................................................................11
Ciclo de vida do aplicativo Android ................................................................11
A classe Activity ...................................................................................................14
Navegabilidade ........................................................................ 24
Introdução ...........................................................................................................24
Chamando a segunda Activity ..........................................................................30
Intenção de chamada .........................................................................30
Evento de chamada ............................................................................31
Passagem de parâmetros entre telas.................................... 36
Entendendo a passagem de parâmetros entre as telas ........................... 36
Inserindo componentes na tela ............................................. 46
Entendendo o leitor de layout .........................................................................47
TextView ................................................................................................................56
Plain Text ..............................................................................................................62
Button ...................................................................................................................63
Radio Button .......................................................................................................65
Check Box e Combo Box .....................................................................................69
7PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
A
PR
ES
EN
TA
ÇÃ
O
Seja bem-vindo à Unidade 3 da disciplina de Programação 
Coding Mobile. Nesta unidade, usaremos os conhecimentos 
adquiridos anteriormente e aprenderemos a criar e gerenciar uma 
aplicação básica em JavaAndroid.
O conteúdo está dividido em quatro módulos. No primeiro 
capítulo, você entenderá como funciona o ciclo de vida da aplicação 
mobile Android e como implementar uma classe Activity. Em 
seguida, estudaremos a navegabilidade, isto é, como implementar 
uma aplicação Android com várias telas e como fazer uma tela 
chamar a outra. No terceiro capítulo, aprenderemos a passar 
parâmetros entre uma tela e outra da aplicação, construindo, 
assim, uma aplicação mais complexa e robusta. Finalmente, no 
capítulo 4, veremos como inserir alguns dos componentes básicos 
em uma aplicação Android para que ela fique mais interativa.
É claro que existe muito mais para aprender, mas o 
aprofundamento de cada um desses conhecimentos pode ser 
feito acessando os links indicados durante o texto, no tópico Saiba 
Mais.
Vamos começar? Excelente estudo para você!
8 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
O
BJ
ET
IV
O
S
Olá. Seja muito bem-vindo à Unidade 3. Nosso objetivo 
é auxiliar você no desenvolvimento das seguintes competências 
profissionais até o término desta etapa de estudos:
1. Entender o ciclo de vida de um aplicativo desenvolvido 
para Android e a classe Activity.
2. Aplicar os recursos da linguagem Java para proporcionar 
a navegabilidade de aplicativos para dispositivos 
móveis, com base no Android.
3. Transmitir parâmetros entre as telas de um aplicativo 
desenvolvido na linguagem Java para dispositivos 
móveis Android.
4. Codificar e tratar eventos acionados pelo usuário e 
pela máquina em aplicativos Android, por meio da 
linguagem Java Mobile.
9PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Ciclo de vida do aplicativo 
Android e classe Activity
OBJETIVO
Ao término deste capítulo, você será capaz de en-
tender como acontece o ciclo de vida do aplicativo 
Android, bem como a classe Activity.
Agora que você já está com o ambiente de desen-
volvimento Java-Android instalado e configurado 
em seu computador, além de já ter certa familia-
ridade com a linguagem Java, podemos chegar ao 
entendimento de como funcionam os apps An-
droid. Vamos lá!
Introdução
A maioria das aplicações Android requer uma interface 
que possibilite a interação com o usuário, também conhecida 
como UI (User Interface). Essa interface pode ser composta por 
uma ou mais telas, nas quais elementos como botões, caixas de 
texto, figuras, animações, caixas de seleção, entre outros, são 
apresentados. É crucial ressaltar que cada atividade (classe Activity) 
representa uma única tela (UI) do aplicativo e é encarregada de 
gerenciar (tratar) os eventos que o usuário pode gerar em cada 
elemento apresentado, como clicar em um botão, digitar um texto 
ou selecionar um item.
No caso de aplicações que demandam mais de uma tela, 
é necessário implementar mais de uma atividade. Por exemplo, 
um aplicativo de e-mail deve ter uma atividade que exiba a lista 
de e-mails, outra dedicada a permitir que o usuário redija um 
novo e-mail e ainda outra para mostrar o conteúdo do e-mail, 
proporcionando ao usuário a leitura do mesmo.
10 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Apesar das atividades de uma mesma aplicação trabalha-
rem juntas para compor as funcionalidades de um aplicativo, elas 
são independentes umas das outras e podem ser iniciadas indivi-
dualmente caso a configuração do aplicativo permita.
Uma característicaespecial dos aplicativos Android é que 
uma aplicação pode iniciar qualquer componente instalado no 
aplicativo e utilizar seus recursos, se assim estiver configurado.
SAIBA MAIS
Uma nova aplicação pode necessitar da captura 
de uma foto utilizando o dispositivo de câmera. 
Para realizar esta tarefa, essa nova aplicação pode 
recorrer a um aplicativo já existente, evitando a 
necessidade de implementar essa funcionalidade 
por conta própria. Em outras palavras, ela pode 
utilizar os recursos de uma aplicação já existente 
sem precisar incorporá-la ou estar vinculada a 
ela de alguma maneira. Para alcançar isso, a nova 
aplicação apenas precisa ser capaz de iniciar a 
atividade de captura de foto da outra aplicação. 
Assim que a atividade de captura de foto for 
concluída, a imagem é retornada para a nova 
aplicação, onde pode ser tratada e utilizada de 
acordo com as necessidades do programador.
Um detalhe importante a considerarmos é que, pelo fato 
de cada aplicação rodar em processos separados, com restrição 
de acesso, uma aplicação não pode iniciar diretamente outra. 
Para fazer isso, ela manda uma mensagem ao sistema Android 
indicando a intenção de iniciar a outra atividade, o qual pode 
decidir se atende ou não a essa intenção. Cada mensagem de 
intenção passada para o sistema Android é chamada de “Intent” e 
será estudada em detalhes mais adiante, bem como os processos 
de ativação de componentes.
11PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Gerenciando aplicativos
É importante entendermos que os dispositivos móveis 
precisam gerenciar cuidadosamente a utilização de seus recursos, 
principalmente a memória, pois normalmente tais recursos são 
bem limitados. Assim, o sistema operacional gerencia as aplicações 
na forma de uma pilha – “stack applications” ou, em português, 
“pilha de aplicações”. A aplicação que está no topo da pilha é a 
que está sendo executada e visualizada. As outras permanecem 
com status de “paradas temporariamente” (pause) ou “paradas 
definitivamente” (stop) e não podem ser visualizadas até que 
voltem a estar em primeiro lugar no topo da pilha. Além disso, o 
aplicativo com status pause ou stop pode, a qualquer momento, ser 
descartado (encerrado) pelo sistema operacional para liberar mais 
memória, caso a utilização desse recurso atinja um limite crítico.
Cada aplicativo tem seu ciclo de vida bem definido e pode 
ter vários estados (status) desde o início de sua execução até ser 
descartado pelo usuário ou pelo próprio sistema operacional. O 
tópico a seguir apresenta como funciona o ciclo de vida de uma 
aplicação.
Ciclo de vida do aplicativo 
Android
Para os dispositivos móveis que utilizam a plataforma 
Android, o ciclo de vida dos aplicativos deve seguir as seguintes 
etapas: quando o usuário clica sobre o ícone da aplicação, ela 
é criada e passa a utilizar recursos do sistema operacional do 
dispositivo. Nesse contexto, o termo “criar” (create) não tem o 
sentido de “implementar” ou “desenvolver”, mas de “instanciar”, 
isto é, ser executado e passar a ocupar um espaço de memória, 
utilizando recursos do sistema.
12 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Quando um aplicativo é executado, ele chama o método 
onCreate, que é obrigatório e é executado uma única vez durante o 
ciclo de vida da aplicação. Esse método define o que deve ser feito, 
qual interface vai ser utilizada e quais são os componentes dela. 
Para entrar em operação e poder ser utilizado, o aplicativo, depois 
de criado, precisa ser iniciado.
Quando isso acontece, o método onStart é chamado. 
Ele não é obrigatório, mas podemos utilizá-lo para capturar o 
evento de inicialização da aplicação. O aplicativo deve, então, ser 
colocado no topo da pilha de aplicativos, para que seja visualizado 
e controlado pelo usuário. Esse evento pode ser capturado pelo 
método onResume.
Caso outro aplicativo seja iniciado, o aplicativo anterior é 
parado temporariamente (paused) e vai ao segundo lugar da pilha 
de aplicativos. Esse evento é capturado pelo método onPause, 
o qual pode ser implementado para salvar o estado (atributos) 
do aplicativo, antes que ele passe para a situação de parado 
temporariamente. Esse é um método muito útil, pois, caso a 
aplicação volte ao topo da pilha, é necessário saber qual era sua 
situação e quais eram seus dados antes de ser temporariamente 
parado.
Para voltar a utilizar o aplicativo que está parado 
temporariamente, é preciso recolocá-lo no topo da pilha. Isso 
só acontece se o outro aplicativo que tomou seu lugar no topo 
da pilha for descartado ou parado temporariamente. Quando 
isso acontece, o método onResume entra em ação novamente. 
O aplicativo que está parado temporariamente (paused) pode 
ser parado definitivamente (stop), e o método que captura esse 
evento é o onStop.
Uma vez parado, o usuário só conseguirá utilizar 
novamente o aplicativo se reiniciá-lo. Se isso acontecer, o método 
13PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
onRestart será chamado, capturando, assim, o evento e passando 
o controle para o método onStart. Depois de parado, o aplicativo 
pode ser retirado da pilha, isto é, ser descartado. Quando isso 
acontece, o método onDestroy é chamado, e o ciclo de vida da 
aplicação termina.
Nessa perspectiva, para ter acesso a esse aplicativo depois 
de ele ter sido retirado da pilha, o usuário deve recriá-lo, fazendo 
com que outro ciclo de vida tenha início. Vejamos o diagrama de 
transição de estado a seguir, que representa esse ciclo.
Imagem 3.1 – Ciclo de vida dos aplicativos Android
CRIADO
DESTRUÍDO
INICIADO
EM 
EXECUÇÃO
PARADO 
TEMPORARIAMENTE
PARADO 
DEFINITIVAMENTE
1
2
3 4 6
9 8
10
5
Fonte: Elaborada pela autoria (2023).
Para entendermos melhor a imagem apresentada, 
podemos fazer uso da seguinte legenda:
1. Método onCreate - chamado quando o usuário clica 
sobre o ícone da aplicação.
2. Método onStart - chamado quando a aplicação se torna 
visível para o usuário.
3. Método onResume - chamado quando a aplicação está 
no topo da pilha.
14 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
4. Método onPause - chamado quando a aplicação sai do 
topo da pilha e fica parada temporariamente por causa 
da execução de outra aplicação. 
5. Método onResume - chamado quando a aplicação que 
foi parada temporariamente volta a ser requisitada. 
6. Método onStop - chamado quando a aplicação está 
sendo encerrada.
7. Método onRestart - chamado quando a aplicação precisa 
ser iniciada outra vez.
8. Método onDestroy - chamado para encerrar a execução 
da aplicação.
9. Método onDestroy - nesse caso, a aplicação está sendo 
encerrada não pelo usuário, mas sim pelo SO para 
liberar memória.
10. Aplicação descartada.
Todos esses métodos listados fazem parte da classe 
Activity, a qual é utilizada pelo sistema operacional Android para 
ajudar a gerenciar o ciclo de vida dos aplicativos.
A seguir veremos mais detalhes sobre essa classe.
A classe Activity
A classe Activity define as atividades do projeto. É a 
classe-mãe, ou a superclasse, que define as características e os 
comportamentos básicos para qualquer atividade criada para o 
projeto. Assim, cada atividade é responsável por fornecer uma tela 
com a qual o usuário pode interagir para realizar alguma ação, 
como digitar um número de telefone, tirar uma foto, ler um e-mail, 
incluir, alterar ou excluir os dados de um contato.
15PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
A interface criada na atividade pode preencher a tela inteira 
do dispositivo, o que normalmente acontece, ou pode flutuar sobre 
outras telas. Com base no exposto nos itens anteriores, sobre os 
métodos do ciclo de vida de um app Android, a classe Activity pode 
ser representada, segundo o padrão UML, da seguinte maneira:
Imagem 3.2 – Representação gráfica da classe Activity
CLASSE Activity
...
onCreate()
onStart()
onResume()
onPause()
onRestart()
onStop()
onDestroy()
...
Fonte: Elaborada pela autoria com base no app Android (2023).
Naturalmente, como não mencionamosos atributos, a 
lista de atributos da classe Activity ainda é desconhecida, por isso 
foi colocada como sendo “...”. Da mesma forma, pode ser que a 
classe Activity tenha mais métodos que os mencionados; por esse 
motivo, após o método onDestroy, também foi colocado “...”.
EXEMPLO: é importante salientarmos que podem 
acontecer modificações à medida que são feitas as 
atualizações. Agora, considerando essa informação, abra 
o Android Studio e crie um novo projeto, clicando no item 
“Start a new Android Studio Project”, destacado na imagem 
a seguir.
16 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.3 – Criando um novo projeto Android
Fonte: Elaborada pela autoria (2023).
Em seguida, defina o nome da aplicação como App1_U3, 
a dizer que essa é nossa primeira aplicação criada na Unidade 3 
desta disciplina, conforme apresentado a seguir.
17PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.4 – Definindo o nome da aplicação
Fonte: Elaborada pela autoria (2023).
Deixe os demais campos como estão e clique em “Next”. 
Marque a opção “Phone and Tablet” e selecione a “API15”, 
como mostrado anteriormente e clique em “Next”.
IMPORTANTE
Caso você não se recorde do motivo pelo qual está 
fazendo essas seleções, reveja o material estudado 
nas outras unidades desta disciplina.
18 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
A tela a seguir deve aparecer.
Imagem 3.5 – Adicionando a Activity ao projeto
Fonte: Elaborada pela autoria (2023).
Selecione a “Empty Activity” e clique em “Next”. A tela a 
seguir deve ser apresentada.
Imagem 3.6 – Classe Activity do projeto
Fonte: Elaborada pela autoria (2023).
Com os conhecimentos que você adquiriu nas unidades 
anteriores sobre linguagem Java, você pode entender o código 
apresentado antes. Mesmo assim, vamos detalhá-lo a seguir.
19PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
 • A linha 1 define o pacote em que se encontra a classe 
Activity que estamos visualizando.
 • A linha 6 declara a classe MainActivity (Atividade 
principal), que vai gerenciar a tela principal de nosso 
aplicativo, pois, como vimos anteriormente, cada tela 
é gerenciada por uma classe Activity. É importante 
também verificarmos que a classe MainActivity herda 
(extends) características e comportamentos da classe 
AppCompatActivity.
 • Na linha 8, existe uma expressão informando que o 
método a seguir é uma sobrescrita. Assim, usamos @
Override toda vez que substituímos um método. Quanto 
a isso, conforme Singh (2017), seu uso fornece dois 
benefícios: 
1. Indicar, com certeza, que você realmente está 
substituindo o método que deseja. Caso você cometa 
um erro comum ao digitar incorretamente o nome 
de um método ou não corresponder exatamente aos 
parâmetros, você será avisado de que o método não 
está realizando a substituição da forma como você está 
pensando.
2. Tornar o seu código mais fácil de entender, porque é 
mais óbvio quando os métodos são sobrescritos.
 • A linha 9 mostra o método onCreate sendo declarado. 
Esse método copia o método da classe-mãe 
AppCompatActivity.
 • Na linha 10, ocorre a chamada ao método onCreate da 
classe-mãe.
 • Na linha 11, é definido o layout para a Activity que está 
sendo criada.
20 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Verificando o conteúdo da classe MainActivity, descrita 
anteriormente, podemos perceber que apenas o método onCreate 
está sendo utilizado, pois somente ele é obrigatório. Como vimos, 
existem outros seis métodos que completam o ciclo de vida de 
uma aplicação, os quais podem ser utilizados para permitir 
ao programador maior controle sobre a aplicação que está 
desenvolvendo. Portanto, se você executar a aplicação, o resultado 
deve ser o mostrado na imagem a seguir.
Imagem 3.7 – AVD da execução do projeto
Fonte: Elaborada pela autoria (2023).
O exemplo a seguir apresenta o código que deve ser 
implementado em seu projeto (na classe MainActivity) para dar 
uma noção do funcionamento da atividade quando ela possui 
todos os métodos de controle do ciclo de vida da aplicação.
21PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Para tanto, implemente o seguinte código na sua classe 
MainActivity, apresentado na imagem a seguir:
Imagem 3.8 – Exemplo dos métodos de gerenciamento de aplicações de app Android
Fonte: Elaborada pela autoria (2023).
Esse código apresentado não tem função prática alguma, a 
não ser permitir que você entenda como funciona o gerenciamento 
do ciclo de vida de aplicativos Android.
22 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Agora salve e execute a aplicação. Para verificar o resultado, 
abra a janela chamada “Run”, como mostrado na imagem a seguir, 
e verifique os itens em destaque.
Imagem 3.9 – Resultado da execução do código do exemplo
Fonte: Elaborada pela autoria (2023).
O AVD deve estar como mostra a imagem a seguir:
Imagem 3.10 – AVD do exemplo
Fonte: Elaborada pela autoria (2023).
23PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Para verificar o resultado da execução dos métodos, clique 
em um dos botões em destaque na imagem anterior.
IMPORTANTE
Compare o resultado apresentado na janela “Run” 
com o diagrama de transição de estado (Imagem 
3.1).
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir o que vimos.
Aqui, você conheceu o ciclo de vida do aplicativo 
Android, bem como a classe Activity. Espero que 
você tenha aprendido muitos conceitos novos 
enriquecedores ao seu conhecimento. Avante!
24 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Navegabilidade
OBJETIVO
Ao término deste capítulo, você será capaz de 
entender como funciona a navegabilidade do 
aplicativo Android. Então, animado com mais uma 
etapa de estudos? Vamos lá!
Introdução
Aplicativos mais complexos normalmente possuem mais 
de uma tela ou precisam chamar outros aplicativos para executar 
uma função especializada. Vamos aprender agora a criar novas 
telas (Activity) para um mesmo aplicativo, a navegar entre elas e 
também a permitir que a tela de um aplicativo (Activity) chame 
outro aplicativo (Activity). Nessa perspectiva, os métodos utilizados 
para iniciar uma nova tela (Activity) são os seguintes: startActivity e 
startActivityForResult.
Lembre-se de que cada tela de um aplicativo é uma classe 
Activity e que a linguagem Java diferencia letras maiúsculas de 
letras minúsculas. Dessa forma, o método startActivity não pode 
ser escrito como “startactivity”.
A decisão de utilizar um desses dois métodos deve recair 
sobre a seguinte questão: a tela (Activity1) que está chamando a 
outra (Activity2) precisa de um retorno ou um vínculo para poder 
continuar suas atividades depois que a tela chamada (Activity2) for 
fechada?
Em caso de resposta positiva, devemos utilizar o método 
startActivityForResult. Mas, se esse não for o caso e a tela (Activity1) 
que está chamando a outra tela (Activity2) não precisar de vínculo 
ou retorno, devemos utilizar o método startActivity. Vejamos as 
imagens a seguir, que representam graficamente esses dois casos. 
25PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
 • Uso do método startActivity.
Imagem 3.11 – Activity1 não precisa de retorno da Activity2 depois que a última for fechada e 
o foco retornar para a primeira
Activity 2Activity 1
Tela simples com 
botão.
Fonte: Elaborada pela autoria (2023).
 • Uso do método startActivityForResult:
Imagem 3.12 – Activity1 precisa de retorno da Activity2 depois que a última for fechada e o 
foco retornar para a primeira
Activity 2Activity 1
Ligação telefônica
Fonte: Elaborada pela autoria (2023).
Para entendermos melhor algumas características 
necessárias à navegabilidade correta entre as telas de um 
aplicativo Android, vamos verificar o exemplo a seguir. Devemos 
criar um novo projeto Android, chamado App2_U3 nos mesmos 
moldes que o App1_U3. Para fazer isso, você pode fechar o projeto 
App1_ U3, que está aberto, ou selecionar a opçãodo menu “File-
>New -> New Project...”, como mostra a imagem a seguir.
26 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.13 – Criando o projeto App2_U3
Fonte: Elaborada pela autoria (2023).
Note que esse novo projeto, a exemplo do anterior, 
possui apenas uma Activity (tela), chamada de MainActivity, ou tela 
principal. Agora crie mais duas telas (Empty Activity) dentro do novo 
projeto (pacote App2_U3) com as seguintes características:
 • Primeira tela – Nome da atividade: Tela2.
 • Segunda tela – Nome da atividade: Tela3.
Para fazer isso, clique com o botão direito do mouse sobre 
o app e selecione new->Activity->Empty Activity, conforme mostra a 
imagem a seguir.
27PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.14 – Inserindo uma nova Activity no projeto
Fonte: Elaborada pela autoria (2023).
Assim, o seu projeto deve ficar como mostra a imagem a 
seguir.
28 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.15 – Projeto com três Activities ou telas
Fonte: Elaborada pela autoria (2023).
Agora salve, execute o projeto e verifique se apenas a 
atividade principal fica visível e se as duas outras atividades (tela2 
e tela3) não estão acessíveis. Para verificar o porquê de isso 
acontecer, precisamos analisar o arquivo AndroidManifest.xml, 
cujo código é apresentado a seguir.
29PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.16 – Arquivo AndroidManifest.xml do projeto App2_U3
Fonte: Elaborada pela autoria (2023).
Repare que apenas a atividade principal (MainActivity), na 
linha 12, possui o . Esse fragmento de código tem dois 
atributos: (1) ação (action), cuja função é definir se a atividade pode 
ser uma atividade principal do aplicativo; e (2) categoria (category), 
que define se o usuário pode iniciar a atividade diretamente a 
partir do menu de aplicativos.
NOTA
Para ter acesso ao menu de aplicativos, basta cli-
car sobre a região marcada em vermelho, na ima-
gem a seguir, e arrastar para cima. Os aplicativos 
implementados até o momento estão destacados 
em azul.
30 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.17 – Abrir o menu de aplicativos
Fonte: Elaborada pela autoria (2023).
Chamando a segunda Activity
Intenção de chamada
Para chamarmos a segunda tela (atividade) da aplicação, 
é necessário utilizar o objeto Intent. Esse objeto será descrito 
em detalhes adiante, portanto aqui será feita apenas uma breve 
introdução de sua sintaxe para permitir o funcionamento correto 
da aplicação em questão. Logo, para declarar uma chamada a 
outra atividade do mesmo aplicativo, devemos usar o seguinte 
fragmento de código:
Intent a = new Intent(this, Tela2.class);
startActivity(a);
31PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Nesse fragmento, podemos verificar, na primeira linha, 
a declaração de um objeto Intent “a”, que define a intenção de 
iniciar uma nova atividade, chamada Tela2.class. Já na segunda 
linha, vemos a utilização do comando startActivity, indicando como 
parâmetro a intenção de chamada. Como foi visto no princípio 
deste capítulo, o comando startActivity inicia uma atividade e não 
espera retorno algum dela.
Evento de chamada
Normalmente, a chamada a outra atividade ocorre como 
consequência de um evento realizado pelo usuário, como clicar 
em um botão ou qualquer outra interação do usuário com 
o layout, definida pelo programador. Dessa forma, a simples 
implementação do código apresentado no item Intent não vai 
iniciar uma nova atividade, pois o evento que dispara essa ação 
não foi definido. Apesar de o assunto layout ser tratado mais 
adiante neste material, vamos ver a seguir o fragmento de código 
que mostra como inserir um botão e permitir que ele “escute” e 
reaja, executando a chamada desejada:
Button b = new Button(this); 
b.setText = “ok”;
Essas duas linhas de código declaram um objeto do tipo 
Button (botão) e definem “ok” como sendo o texto que deve apa-
recer no botão. Porém, a aplicação precisa saber que esse botão 
deve ser “ouvido” quando for clicado para executar uma nova ta-
refa. Dessa forma, devemos inserir a seguinte linha de código ao 
fragmento anterior:
32 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
b.setOnClickListener(this);
Com essa linha adicionada ao código, quando o botão for 
clicado, o método onClick será chamado, e, dentro dele, podemos 
declarar a intenção (Intent) de chamar a nova tela. Toda vez que 
permitimos que um botão reaja a um clique, devemos implementar 
o método onClick para definir o que ele deve fazer quando for 
clicado. Desse modo, dentro da própria atividade, devemos criar 
um método onClick, assim:
public void onClick(View v) {
Intent i = new Intent(this, Tela2.class); 
startActivity(i); 
}
Podemos também modificar o código do exemplo 
anterior (App2_U3) para incluir um botão na atividade principal 
(MainActivity) que chame a atividade 2 (Tela2), conforme explicado 
anteriormente. O botão deve ter como rótulo o texto “Clique 
Aqui”. Nesse exemplo, modificamos também o código da segunda 
atividade (Tela2) para que apresente a seguinte mensagem na 
caixa de texto: “Esta é a segunda tela da aplicação”.
Logo, o código completo da atividade da tela principal do 
aplicativo deve ficar da seguinte maneira:
33PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.18 – Código para o exemplo anterior
Fonte: Elaborada pela autoria (2023).
Veja que foi necessário inserir várias linhas e modificar 
algumas outras. Não se preocupe em entender tudo isso agora. 
Esse exemplo foi apenas para que você entenda as bases da 
funcionalidade de apps Android. Perceba também que, na linha 
21, da imagem anterior, o método startActivity é utilizado para 
chamar a atividade 2 (Tela2) da aplicação. Ela foi utilizada porque 
a tela principal não precisa, nesse caso, de retorno. Se você salvá-
34 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
lo e executá-lo, o AVD deve se parecer com o mostrado na imagem 
a seguir.
Imagem 3.19 – Resultado do exemplo anterior
Fonte: Elaborada pela autoria (2023).
Note que, ao abrir, a tela principal mostra o botão que 
preenche todo o espaço definido no layout. Clicando sobre o 
botão, a segunda tela é apresentada toda em branco. Conforme 
já estudamos, logo que a segunda tela é aberta, a primeira tela 
para temporariamente (pause) e fica em segundo plano. Nesse 
momento, ambas as telas ocupam espaço na memória, além de 
recursos do dispositivo. Pressionando a tecla “Voltar”, em destaque 
na imagem mostrada, a segunda tela para temporariamente 
(pause), depois definitivamente (stop) e, por fim, é destruída 
(destroy). Já a primeira tela volta ao primeiro plano (resume). Nesse 
momento, apenas a tela principal ocupa espaço na memória e nos 
recursos do dispositivo.
Pressionando mais uma vez a tecla “Voltar”, a primeira 
tela para temporariamente (pause), depois para definitivamente 
35PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
(stop) e, por fim, é destruída (destroy), liberando toda a memória 
utilizada para a aplicação.
Em relação a isso, você pode estar pensando que um botão 
que ocupa todo o espaço da tela não adianta muita coisa. Seria 
interessante colocar mais componentes em uma mesma tela.
Perfeito! Você tem toda a razão! Logo aprenderemos a 
fazer isso. No próximo capítulo, veremos como fazer uma tela 
“conversar” com a outra por meio de parâmetros e como manipular 
layouts. Sigamos em frente!
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir o que vimos.
Aqui, você aprendeu tudo sobre a navegabilidade, 
a intenção e o evento de chamada. Esperamos que 
tenha gostado do conteúdo apresentado. Avante!
36 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Passagem de parâmetros entre 
telas
OBJETIVO
Ao término deste capítulo, você será capaz de en-
tender como funciona a passagem de parâmetros 
entre telas. Animado para este novo conhecimen-
to? Vamos lá!
Entendendoa passagem de 
parâmetros entre as telas 
A passagem de parâmetros a ser estudada agora não 
cria vínculo entre as telas. Seu foco é a passagem de um ou mais 
parâmetros para a próxima tela, e não o retorno de parâmetros, 
por isso o método utilizado ainda será o startActivity, não o 
startActivityForResult.
Para passar parâmetros entre telas, é necessário utilizarmos 
o objeto Bundle (android.os.Bundle). A palavra “bundle” pode ser 
traduzida como “pacote” ou “embrulho”, e essa é exatamente a 
sua função, ou seja, servir como um embrulho ou um pacote com 
os dados que precisam ser passados de uma atividade para outra. 
Assim, para definirmos um objeto do tipo Bundle, utilizamos a 
seguinte sintaxe:
Bundle = new Bundle;
Um exemplo seria:
Bundle pacote_de_dados = new Bundle;
37PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Porém, é necessário definirmos o conteúdo desse pacote 
de dados, e, para tanto, precisamos utilizar o comando putString 
da seguinte forma:
pacote_de_dados.putString(“msg”, “Olá”);
Na linha de código anterior, um dado do tipo string 
chamado “msg” e de conteúdo “Olá” está sendo adicionado ao 
“pacote de dados”. Nesse sentido, podem ser adicionados vários 
dados a um mesmo pacote de dados. No entanto, uma vez que 
o seu conteúdo esteja definido, é necessário incorporá-lo a uma 
intenção de chamada, pois ele de nada vale se não for passado 
adiante.
Dessa forma, utilizamos o método putExtras para 
incorporar o pacote de dados a uma Intent:
i.putExtras(pacote_de_dados); startActivity(i);
O código completo fica assim:
38 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
… 
{
//declara a intenção “i” para chamar outra tela (activity)
Intent i = new Intent(this, tela2.class);
//declara um pacote de dados que deve ser enviado para a tela a 
ser chamada
Bundle pacote_de_dados = new Bundle();
//determina que o conteúdo do pacote de dados é um dados chamado 
“msg” //cujo conteúdo é “Olá”.
pacote_de_dados.putString(“msg”, “Olá”);
//insere o pacote de dados na intenção de chamada “i”
i.putExtras(pacote_de_dados);
//chama a nova atividade, definida pela intenção “i”.
startActivity(i); 
}
Muito legal, não é? Agora você já sabe como passar 
parâmetros para uma nova tela. Mas isso é só o começo! Vamos 
acompanhar o próximo exemplo para esclarecer melhor como 
funciona todo o processo.
Crie um novo projeto de app, chamado App3_U3. A Activity 
principal deve ser do tipo “Empty Activity”, com o nome de Principal. 
Depois de aberto, o código da tela principal (classe Principal.java) 
do seu projeto deve se parecer com o mostrado na imagem a 
seguir.
39PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.20 – App3_U3 – Código da classe Principal.java
Fonte: Elaborada pela autoria (2023).
A primeira coisa a fazer é alterar o código anterior para que 
fique idêntico ao apresentado na imagem 3.20. Assim, podemos 
mencionar que, na imagem 3.22, foram destacados os “imports” 
de bibliotecas e o método onCreate, para que você perceba 
claramente as alterações necessárias.
A imagem a seguir mostra o código anterior (3.20) com as 
alterações necessárias para ficar igual ao código da imagem 3.20. 
Preste atenção às modificações em destaque.
40 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.21 – App3_U3 – Código da classe Principal.java
Fonte: Elaborada pela autoria (2023).
Muito bem. O próximo passo é inserirmos as modificações 
referentes à passagem de parâmetros entre as telas. O nosso 
código fica assim:
41PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.22 - App3_U3 – Código da classe Principal.java
Fonte: Elaborada pela autoria (2023).
Em vermelho, estão destacadas as linhas que foram 
alteradas ou incluídas. Vamos, então, entender o código. Ao ser 
iniciado, o aplicativo deve executar a função onCreate, na linha 14, 
como já foi explicado no ciclo de vida dos apps Android. Dentro 
do método onCreate, um botão “b” deve ser criado; para ele, é 
definido o texto “Clique Aqui” (linha 15). Já na linha 16, definimos 
que esse botão deve “escutar” uma ação de click, isto é, a partir da 
execução dessa linha de código, o botão “b” deve reagir, chamando 
o método onClick quando for acionado. Então, o método onClick 
executa as seguintes atividades:
42 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
//declara a intenção “i” para chamar outra tela (activity)
Intent i = new Intent(this, tela2.class);
//declara um pacote de dados que deve ser enviado para a tela a 
ser chamada
Bundle pacote_de_dados = new Bundle();
//determina que o conteúdo do pacote de dados é um dado chamado 
“msg”,
cujo conteúdo é “Olá”.
pacote_de_dados.putString(“msg”, “Olá”);
//insere o pacote de dados na intenção de chamada “i”
i.putExtras(pacote_de_dados);
//chama a nova atividade, definida pela intenção “i”.
startActivity(i)
Você deve ter percebido que, depois de toda essa explicação, 
ainda não existe a Tela2, necessária para o funcionamento correto 
do código descrito. Então, vamos inserir uma nova tela (Activity) 
chamada de Tela 2. Ela deve ter o seguinte código:
43PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.23 - App3_U3 – Código da classe Tela2.java
Fonte: Elaborada pela autoria (2023).
Vamos compreender melhor o código da imagem 3.23. 
Ao ser criada, a Tela2 deve executar o código que está definido 
dentro do método onCreate, como você já sabe. Na linha 13 desse 
código, é definida uma caixa de texto (TextView), de nome “txt”. Na 
linha 14, é definida uma variável com o nome de “msg_recebida”, 
e a ela é atribuído o conteúdo vazio. Já na linha 15, é definido um 
objeto “Intent”, que, nesse caso, serve para capturar a intenção 
de chamada realizada pela tela principal. Na linha 16, verifica-se 
se a intenção de chamada capturada não está vazia (nula). Caso 
44 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
não seja nula, é executada a linha 18, a qual captura um suposto 
pacote, enviado pela tela principal, nessa intenção de chamada.
Perceba que o pacote pode estar vazio, isto é, a intenção 
de chamada pode existir, mas não necessita possuir parâmetros. 
Essa verificação é feita na linha 19, e, caso exista algum pacote de 
dados embutido nessa intenção de chamada, ele é capturado na 
linha 21.
Por fim, a linha 24 define o conteúdo para a caixa de texto 
“txt” definida no início do código, e, na linha 25, o layout, composto 
por essa caixa de texto, é apresentado na tela do dispositivo.
Salvando e executando o código, obtemos o seguinte 
resultado:
Imagem 3.24 – Resultado do exemplo – Passagem de parâmetros entre telas
Fonte: Elaborada pela autoria (2023).
45PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Que tal? Esperamos que perceba como os conceitos e os 
códigos estudados nas unidades anteriores desta disciplina estão 
sendo aplicados agora. Vamos em frente!
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir o que vimos.
Aqui, você aprendeu sobre a passagem dos parâ-
metros entre as telas. Esperamos que você tenha 
gostado do conteúdo apresentado. Avante!
46 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Inserindo componentes na tela
OBJETIVO
Ao término deste capítulo, você será capaz de 
entender os passos para inserir os componentes 
na tela do aplicativo Android. E aí, animado para 
mais um desafio? Vamos lá!
O Android Studio permite trabalhar com uma grande 
variedade de componentes. Neste material, apresentaremos os 
mais comuns. Conforme visto anteriormente, a estrutura dos 
projetos Android separa o layout (interface com o usuário) do 
código responsável por ação, reação e regras de negócio tratadas 
pela tela, sendo o primeiro definido em um arquivo xml e o último, 
em uma classe Activity (em linguagem Java).
Para entendermos melhor esse assunto, vamos criar 
um novo projeto no Android Studio na versão Android 4.0.3. É 
importante salientarmos que pode haver mudanças nas versões 
maisrecentes dos conceitos que serão apresentados. Vamos, 
então, revisar os passos em detalhes, como apresentado a seguir:
1. Abra o Android Studio e crie uma nova aplicação 
Android.
2. Defina o nome da aplicação como “App4_U3”.
3. Selecione o dispositivo Phone and Tablet e a API15: 
Android 4.0.3 IceCreamSandwich.
4. Escolha uma “Empty Activity”, exatamente como foi feito 
nos exemplos anteriores, e dê o nome de “Principal”.
5. Depois de o projeto estar carregado, clique em executar 
(Run), selecione o AVD para exibir o app, e o resultado 
deve ser como o apresentado a seguir:
47PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.25 – AVD do exemplo
Fonte: Elaborada pela autoria (2023).
Até aqui, você já sabe o que fazer. Vamos, então, aprofundar 
nosso conhecimento.
Entendendo o leitor de layout
Nesse ponto, é necessário explicarmos como funciona 
o editor de layout disponibilizado pelo Android Studio, além de 
verificar como cada alteração de layout em uma Activity (tela do 
app) impacta o código xml correspondente. Sendo assim, selecione 
o arquivo xml referente ao layout da aplicação, clicando em app -> 
res -> layout e escolhendo o arquivo activity_principal.xml, como 
mostrado na imagem a seguir.
48 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.26 – Selecionando o arquivo xml de layout da tela do dispositivo
Fonte: Elaborada pela autoria (2023).
Ao selecionar o arquivo de layout, conforme demonstrado 
anteriormente, o Android Studio apresenta o editor de layout. Esse 
recurso permite que você crie o layout desejado para cada uma 
das telas de sua aplicação, clicando e arrastando elementos para 
um preview de tela do AVD escolhido. O editor de layout de nosso 
app é apresentado na imagem a seguir.
49PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.27 – Editor de layout do app
Fonte: Elaborada pela autoria (2023).
Na parte superior da imagem anterior, estão destacados 
em vermelho o AVD, a API e o tema que utilizaremos nesse projeto. 
Quanto a isso, é possível que o tema de seu projeto ainda não 
esteja definido como na imagem 3.27; logo, clique sobre o tema 
e o selecione para ficar igual ao apresentado na referida imagem, 
pois, assim, os resultados apresentados neste material serão os 
mesmos que você obterá no seu computador.
Ao clicar no tema, uma tela de seleção será apresentada; 
então, selecione o tema “Light”, como mostrado na imagem a 
seguir.
50 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.28 – Seleção de tema para o app
Fonte: Elaborada pela autoria (2023).
Como vimos, no canto inferior esquerdo da imagem 
3.27, há duas abas em destaque. A primeira (Design) mostra o 
editor de layout, enquanto a segunda (Text) mostra o arquivo xml 
correspondente ao layout. Ao clicar na aba Text, você terá uma 
visão do arquivo xml, conforme apresentado na imagem a seguir.
Imagem 3.29 – Arquivo xml correspondente ao layout da tela do app
Fonte: Elaborada pela autoria (2023).
51PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Como comentamos antes, cada tela (Activity) possui 
um arquivo xml de layout. Note que o elemento “TextView”, que 
visualizamos na imagem 3.27, com o conteúdo “Hello World”, 
aparece no arquivo xml (da linha 9 até a linha 16) e que esse 
conteúdo está definido na linha 12.
Agora experimente trocar o conteúdo desse elemento 
para “Tela Principal”, da seguinte maneira:
Android:text = “Tela Principal”
Depois de alterado, clique na aba Design e veja o que 
acontece. O resultado deve ser como o apresentado na imagem 
a seguir.
Imagem 3.30 – Apresentação do layout do app
Fonte: Elaborada pela autoria (2023).
Perceba também que o conteúdo do atributo “text”, 
destacado em vermelho, do lado direito da imagem anterior 
também foi alterado.
Agora faça outro teste: altere o conteúdo da caixa de texto 
(destacada em vermelho) para “Tela Principal do App” e pressione 
a tecla ENTER. Esse ato terá duas consequências: (1) o conteúdo 
52 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
do elemento TextView, destacado em vermelho, no lado esquerdo 
da imagem 3.30, que está posicionado no meio da tela do AVD, 
será alterado. Clicando na aba Text, você perceberá que o arquivo 
xml também foi alterado na linha 12, conforme apresentado na 
imagem a seguir.
Imagem 3.31 – Elemento TextView
Fonte: Elaborada pela autoria (2023).
A conclusão é óbvia, mas precisa ser mencionada aqui: 
qualquer alteração no arquivo xml causa alterações no layout do 
app ou em algum atributo de um dos componentes de sua tela. 
Além disso, qualquer alteração no layout do app ou em qualquer 
atributo dos elementos que compõem sua tela causa alterações 
no arquivo xml.
Portanto, você deve ter percebido que o editor de layout 
do Android Studio pode fazer muito mais do que apresentamos 
até agora. Não se preocupe. Vamos passo a passo, aprofundando-
nos no decorrer de nossos estudos. Uma vez que você já conheça 
um pouco do editor de layout e de sua relação com o arquivo xml, 
vamos em frente para entender como inserir componentes na tela 
do app.
53PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Primeiro, precisamos mudar o layout da tela. Se olharmos 
com atenção para a linha 2 da imagem 3.29, perceberemos que o 
layout definido até o momento para nosso app é o ConstraintLayout. 
Vamos, então, mudar essa especificação para um tipo de layout 
mais simples e de mais fácil entendimento: LinearLayout. Para isso, 
clique na aba Design e verifique a janela chamada “Componente 
Tree” ou, em português, “Árvore de Componentes”. Ela deve 
mostrar todos os componentes ou elementos que estão presentes 
na tela de seu app até o momento, da seguinte maneira:
Imagem 3.32 – Árvore de componentes do app
Fonte: Elaborada pela autoria (2023).
Clique com o botão direito do mouse sobre o referido 
layout e selecione o item “Convert View...”; uma tela com os 
layouts disponíveis será apresentada. Nessa nova tela, selecione 
“LinearLayout” e clique no botão “Apply”, como apresentado na 
imagem a seguir.
54 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.33 – Alterando o layout da tela do app
Fonte: Elaborada pela autoria (2023).
A janela que apresenta a “Árvore de Componentes” deve 
ser alterada para informar que o layout do app passou a ser 
definido como LinearLayout (horizontal). No entanto, queremos 
que a orientação dos componentes seja vertical; por isso, clique 
uma vez com o botão esquerdo do mouse sobre o referido layout 
e altere o atributo “orientação”, como destacado na imagem a 
seguir.
55PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.34 – Alterando a orientação do layout para a vertical
Fonte: Elaborada pela autoria (2023).
Se você clicar na aba Text, verá o seguinte código xml:
Imagem 3.35 – Arquivo xml da tela do app depois de ter o layout definido para LinearLayout
Fonte: Elaborada pela autoria (2023).
56 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
IMPORTANTE
Os tipos de layout e suas características serão vistos 
mais adiante neste material. Por ora, estamos 
apenas introduzindo o assunto.
Perceba a diferença entre o arquivo da imagem 3.35 
e o arquivo xml da imagem 3.34. Agora que o layout da tela 
está devidamente configurado, precisamos aprender a inserir 
componentes em nosso app.
TextView
O componente TextView é um rótulo ou uma etiqueta 
(label) em que podemos escrever um texto que pode ser lido, 
mas não pode ser alterado pelo usuário do app. Neste segmento, 
vamos primeiramente deletar o componente Textview que já existe 
(apenas para praticar) e adicionar um novo.
Assim, para deletar o componente TextView (ou qualquer 
outro que você deseje), clique na aba Design para visualizar o 
editor de layout do AVD. Em seguida, clique sobre o componente 
TextView, cujo texto é “Tela principal do App” e pressione a tecla 
“delete” em seu teclado. Para inserir o novo componente TextView, 
selecione, na janela “Palette” (que fica acima da janela “Component 
Tree”), o componente Text -> TextView, conforme destacado na 
imagema seguir.
57PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.36 – Janela “Palette”
Fonte: Elaborada pela autoria (2023).
Agora clique e arraste o componente para a tela do AVD. 
Note que, ao soltar o componente sobre a tela do AVD, ele se 
adequa ao tamanho da tela e fica posicionado na parte superior 
dela, como mostra a imagem a seguir.
58 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.37 – TextView inserido na tela do AVD
Fonte: Elaborada pela autoria (2023).
Repare que, se você clicar sobre o componente TextView 
inserido, aparecerá, do lado direito da tela, uma janela com as 
propriedades (atributos) desse componente. Podemos perceber 
claramente que o componente possui um identificador único, 
chamado ID, cujo valor é TextView2. Ele possui também duas 
propriedades parecidas, chamadas de layout_width e layout_
height, as quais definem suas propriedades de largura e altura 
respectivamente. Para cada uma dessas propriedades, podemos 
ter três valores diferentes, a saber:
(1) Match_parent: define que o objeto deve ter a mesma 
largura (width) e/ou altura (height) do componente no qual ele 
está contido. Para esse caso em específico, sabemos que o 
componente TextView está contido no componente LinearLayout. 
Assim, podemos provar isso ao analisar a janela “Component Tree”, 
que destaca claramente essa característica.
59PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
(2) Outro valor possível é wrap content. Se esse valor for 
escolhido para essa propriedade, a largura (width) e/ou a altura 
(height) do componente TextView serão ajustadas ao tamanho 
do texto que ele possui. É importante destacarmos que, se o 
componente não tiver valor para a propriedade de texto, isto é, 
se a propriedade “text” estiver vazia, o componente ficará invisível.
(3) Podemos clicar nos três pontos “...” que estão à direita 
da caixa de combinação e selecionar um dos itens apresentados 
em uma tela especial.
Logo depois dessas propriedades, existe uma propriedade 
chamada “text”, que define o texto a ser apresentado pelo 
componente “TextView” na tela do AVD. Assim, defina para essa 
propriedade o seguinte valor: “Bem-vindo ao meu app. Digite seu 
nome e clique em OK para entrar”. Em seguida, pressione ENTER.
O texto que você acabou de digitar aparecerá em uma 
única linha no AVD, mas você pode clicar sobre o componente e 
alterar a largura ou a altura dele, para ficar parecido com a imagem 
a seguir.
Imagem 3.38 – Componente “TextView” no editor de layout
Fonte: Elaborada pela autoria (2023).
60 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Salve e execute o aplicativo. O resultado deve ser como o 
apresentado na imagem a seguir.
Imagem 3.39 – Componente “TextView” com o aplicativo em execução
Fonte: Elaborada pela autoria (2023).
Note que você pode alterar outras propriedades do 
componente “TextView”, tais como tipo, cor e tamanho da fonte, 
entre outras, como mostra a imagem a seguir.
61PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.40 – Propriedades do componente “TextView”
Fonte: Elaborada pela autoria (2023).
A frase que aparece no componente “TextView” nos dá 
uma deixa para aprendermos a inserir dois novos componentes: 
o “Plain Text” e o “Button”. Então, vamos lá!
62 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Plain Text
O “Plain Text” é uma caixa de texto que permite ao usuário 
digitar algo. Ele tem os mesmos atributos que o componente 
“TextView” e mais um, chamado de “Input Type”, o qual define o 
tipo de dado que esse componente vai receber. Nesse sentido, 
podemos definir o conteúdo da propriedade “text” como vazio, 
afinal o usuário vai digitar o seu nome ali.
Para incluir esse componente, siga o mesmo método que 
usou para inserir o componente “TextView”. Salve e execute o app. 
A tela do AVD deve ficar assim:
Imagem 3.41 – AVD com “TextView” e “Plain Text”
Fonte: Elaborada pela autoria (2023).
Aqui podemos notar algumas características. O atributo 
android:text (no arquivo xml correspondente) foi definido como 
“” (vazio). Isso faz sentido, pois o objetivo desse componente 
é receber um texto, e não o apresentar. Você pode alterar essa 
propriedade para dar uma dica ao usuário, caso queira. Além disso, 
esse componente, chamado android:inputtype, é responsável por 
definir o tipo de dado que receberá. Ele pode conter valores como 
63PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
text, date, time, datetime, numberDecimal, number, textPassword, 
entre outros. Você também pode alterar outras propriedades, 
conforme apresentamos na imagem a seguir.
Imagem 3.42 – Propriedades do componente “PlainText”
Fonte: Elaborada pela autoria (2023).
Button
Agora precisamos inserir um botão com o texto “OK”. Para 
isso, selecione o item Button -> Button, na janela “Palette”, como 
apresentado na imagem a seguir.
64 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.43 – Inserindo um botão
Fonte: Elaborada pela autoria (2023).
Insira o botão na tela, altere seu tamanho e troque o valor 
de sua propriedade “text” de “Button” para “OK”. Ao ser salvo e 
executado, o app deve ficar mais ou menos assim:
Imagem 3.44 – AVD com “TextView”, “Plain Text” e “Button”
Fonte: Elaborada pela autoria (2023).
Antes de passarmos para o próximo componente, clique 
na aba “Text” e verifique o arquivo xml correspondente a essa 
Activity que acabamos de fazer. Ela deve estar parecida com a 
imagem a seguir.
65PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.45 – Arquivo xml correspondente ao AVD da imagem 3.42
Fonte: Elaborada pela autoria (2023).
Repare como os componentes estão descritos no código 
xml: o layout e cada um dos componentes.
Radio Button
Existem muitas opções de componentes, como você pode 
reparar na janela “Palette”, apresentada na imagem a seguir.
66 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.46 – Janela “Palette”
Fonte: Elaborada pela autoria (2023).
Antes de inserirmos mais componentes, como o “Radio 
Button”, vamos criar outra Activity (tela) para o nosso app. Essa 
Activity deve ser chamada de “Tela2” e deve ser uma Empty Activity. 
Depois de criar a nova Activity, não se esqueça de mudar o layout 
para LinearLayout (vertical), assim como fizemos com a Activity 
principal.
Isso posto e realizado, podemos inserir o “radio button”. 
Para tanto, selecione o item “Buttons” e perceba que existem dois 
componentes que começam com o nome Radio: “RadioGroup” e 
67PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
“RadioButton”. Primeiro, selecione o “RadioGroup” e o arraste para 
a tela do AVD. Depois, selecione três componentes “RadioButton” 
e os arraste para o interior do “RadioGroup” que você acabou de 
inserir. Seu projeto deve ficar como mostra a imagem a seguir.
Imagem 3.47 – Inserindo “Radio Buttons” na Activity
Fonte: Elaborada pela autoria (2023).
Para melhorar o layout dessa Activity, selecione o 
componente “RadioGroup”, defina ambos os valores das 
propriedades “layout_width” e “layout_height” para “wrap_content”. 
Sua tela deve ficar assim:
68 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.48 – Melhorando o layout da imagem 3.44
Fonte: Elaborada pela autoria (2023).
Repare que todos os componentes “RadioButtons” tem o 
mesmo valor para a propriedade “text”. Clique no primeiro e defina 
essa propriedade para “Aluno”. Defina também, para o segundo, o 
valor “Professor” e, para o terceiro, o valor “Outro”. Sua tela deve 
ficar assim:
Imagem 3.49 – Projetando a Activity 2 do app
Fonte: Elaborada pela autoria (2023).
Vamos inserir agora um “TextView” com o seguinte texto: 
“Qual é sua posição nesta instituição?”.
69PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Podemos imaginar que esse app seja direcionado a uma 
instituição de ensino. Clique e arraste o componente “TextView” 
de maneira que ele fique acima do “RadioGroup”. A tela deve ficar 
assim:
Imagem 3.50 – Projetando a Activity 2 do app
Fonte: Elaborada pela autoria (2023).
Não se esqueça de que você pode alterar outras 
propriedades,tais como espaçamento, cor, tipo e tamanho de 
fonte, entre outras, em todos os componentes.
Check Box e Combo Box
Para inserir esses componentes, use os mesmos recursos 
aprendidos até o momento. Sua tela deve ficar como a apresentada 
na imagem a seguir.
70 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.51 – Projetando a Activity 2 do app
Fonte: Elaborada pela autoria (2023).
Bom, você já deve ter percebido a quantidade de 
componentes que pode utilizar para montar um app. Então, 
monte um aplicativo ao seu estilo! Alterando as propriedades de 
cada componente, você pode criar um app mais amigável e legível. 
Use sua imaginação!
71PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.52 – Alterando propriedades de cada elemento da tela
Fonte: Elaborada pela autoria (2023).
No caso do elemento “ComboBox”, ele está definido como 
Container -> Spinner na janela “Palette”, como mostrado na imagem 
a seguir.
Imagem 3.53 – Componente “ComboBox”
Fonte: Elaborada pela autoria (2023).
72 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Outro aspecto importante é que, para definir seu conteúdo, 
é necessário criar um array de opções no arquivo strings.xml, 
dentro da pasta “values”. Sua localização é apresentada na imagem 
a seguir.
Imagem 3.54 – Localização do arquivo string.xml
Fonte: Elaborada pela autoria (2023).
Nesse caso, precisamos inserir um array com os valores 
“masculino” e “feminino” dentro desse arquivo. Para tanto, clique 
sobre o arquivo e digite o código apresentado na imagem a seguir.
Imagem 3.55 – Arquivo string.xml
Fonte: Elaborada pela autoria (2023).
73PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
O que você precisa digitar está destacado em vermelho 
na imagem. Já aquilo que está em azul é outro exemplo para 
você perceber como o processo segue o mesmo padrão. Uma 
vez que você tenha digitado o código do arquivo xml, conforme 
apresentado na imagem anterior, volte para o editor de layout da 
tela 2, clique no componente “Combobox” (spinner) e verifique suas 
propriedades. Uma delas será a “entries”. Clique no botão ao lado 
dessa propriedade, e você verá mais ou menos o que mostra a 
imagem a seguir.
Imagem 3.56 – Criando valores para o componente “ComboBox”
Fonte: Elaborada pela autoria (2023).
Em destaque, na imagem anterior, podemos verificar que, 
ao clicarmos no link da propriedade “entries”, a tela “Resources” é 
apresentada.
Do lado esquerdo, selecione a opção “Array”, destacada em 
azul, e você terá acesso a todos os arrays definidos no arquivo 
string.xml, entre os quais estão o array que trata de “estado civil” e 
o que trata de “sexo”. Clique duas vezes sobre o array que fornece 
as opções de “sexo”, e a tela será fechada.
Finalmente, para testar se tudo está funcionando, salve seu 
projeto e execute-o. Note que apenas a primeira tela (Principal) 
aparece e que aparentemente não temos como acessar a tela 
74 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
2 para verificar os demais componentes. Nesse caso, existem 
duas soluções possíveis: você pode fazer o mesmo processo que 
fizemos no capítulo 2 desta unidade ou você pode fazer a seguinte 
alteração:
1. Abra o arquivo AndroidManifest.xml. Ele deve se 
parecer como o apresentado a seguir.
Imagem 3.57 – Arquivo AndroidManifest.xml
Fonte: Elaborada pela autoria (2023).
Note que, destacados em vermelho, estão os comandos 
que permitem ao Android Studio saber qual das telas deve ser a 
primeira a ser aberta quando o aplicativo for executado.
2. Faça uma alteração nesse código para que o que 
estudamos na primeira unidade desta disciplina passe 
da tela Principal para a Tela 2, da seguinte maneira:
75PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Imagem 3.58 – Alterando a tela inicial do aplicativo
Fonte: Elaborada pela autoria (2023).
Salve o arquivo e execute a aplicação. Você verá que a Tela 
2 é apresentada e deve se parecer com a imagem a seguir.
Imagem 3.59 – Tela 2 da aplicação
Fonte: Elaborada pela autoria (2023).
76 PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
Bem, certamente já vimos muita coisa. Não se esqueça 
de testar, criar, inventar, modificar as propriedades e verificar 
seus efeitos. Na próxima unidade, veremos como tratar os 
eventos gerados pelos componentes vistos aqui. Não se esqueça 
de se aprofundar nos conhecimentos, acessando as referências 
apresentadas.
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir o que vimos.
Você deve ter aprendido como inserir componentes 
na tela. Esperamos que tenha aproveitado ao 
máximo todo o conteúdo apresentado.
77PROGRAMAÇÃO CODING (MOBILE)
U
ni
da
de
 3
CLARO, D.; SOBRAL, J. Programação em JAVA. Florianópolis: 
Copyleft Pearson Education, 2008. 89 p. Disponível em: https://
www.faeterj-rio.edu.br/downloads/bbv/0031.pdf. Acesso em: 8 
dez. 2023.
CORDEIRO, F. Android Studio. 3. ed. [S. l.]: AndroidPro, 2016.
CORDEIRO, F. Android aprendiz. [S. l.]: AndroidPro, 2017. 37 p. 
Disponível em: https://www.androidpro.com.br/. E-book. Acesso 
em: 8 dez. 2023. 
DALL’OGLIO, P. PHP: programando com orientação a objetos. 3. 
ed. SP: Novatec Editora, 2016.
DEITEL, H. M.; DEITEI, P. J. Java: como programar. 4. ed. Porto 
Alegre: Bookman, 2003.
GOSLING, J.; MCGILTON, H. The Java language environment. 
Mountain View: Sun Microsystems, Inc, 1995.
MATTOS, E. Programação de software em Java. São Paulo: 
Digerati Books, 2007.
MEIRELLES, A. Smartphones, guia prático - android. Hardware.com.
br, 2009.
ORACLE.COM. Java Documentation. [S. l.]: Oracle, 2018. 
SINGH, C. @Override annotation. In: Java. Java Tutorial, 2017. 
RE
FE
RÊ
N
CI
A
S
	_Hlk156296831
	_Hlk156296744
	_Hlk156296522
	_Hlk156296664
	_Hlk156296551
	_Hlk156296213
	_Hlk156296239
	_Hlk156296263
	_Hlk156296425
	_Hlk156296281
	Ciclo de vida do aplicativo Android e classe Activity
	Introdução
	Gerenciando aplicativos
	Ciclo de vida do aplicativo Android
	A classe Activity
	Navegabilidade
	Introdução
	Chamando a segunda Activity
	Intenção de chamada
	Evento de chamada
	Passagem de parâmetros entre telas
	Entendendo a passagem de parâmetros entre as telas 
	Inserindo componentes na tela
	Entendendo o leitor de layout
	TextView
	Plain Text
	Button
	Radio Button
	Check Box e Combo Box

Mais conteúdos dessa disciplina