Vous êtes sur la page 1sur 72

(Apli cativo )

(Aplicativo com acessibilidade)

(Aplicativo com internacionalizao)


3 Aplicativo Tip Calculator

Objetivos
Neste captulo, voc vai:
Projetar uma interface
grfica do usurio usando
componentes LinearLayout
e GridLayout.
Usar a janela Outline do IDE
para adicionar elementos de
interface grfica do usurio a
componentes LinearLayout
e GridLayout.
Usar componentes de
interface grfica do usurio
TextView, EditText e
SeekBar.
Usar recursos de programao
orientada a objetos com Java,
incluindo classes, objetos,
interfaces, classes internas
annimas e herana para
adicionar funcionalidades a
um aplicativo Android.
Interagir com elementos da
interface grfica do usurio
via programao para alterar o
texto que eles exibem.
Usar tratamento de eventos
para responder s interaes
do usurio com componentes
EditText e SeekBar.
Especificar que o teclado
numrico sempre deve
aparecer quando um aplicativo
estiver executando.
Especificar que um aplicativo
suporta apenas orientao
retrato.
Captulo 3 Aplicativo Tip Calculator 69

3.1 Introduo 3.3.7 Implementao da interface


3.2 Teste do aplicativo Tip Calculator OnSeekBarChangeListener para
3.3 Viso geral das tecnologias lidar com alteraes na posio do
3.3.1 Classe Activity cursor no componente SeekBar
3.3.2 Mtodos de ciclo de vida de 3.3.8 AndroidManifest.xml
Activity 3.4 Construo da interface grfica do
3.3.3 Organizao de componentes de usurio do aplicativo
visualizao com GridLayout e 3.4.1 Introduo ao componente
LinearLayout GridLayout
3.3.4 Criao e personalizao da interface 3.4.2 Criao do projeto TipCalculator
grfica do usurio com o editor 3.4.3 Alterao para um componente
Graphical Layout e com as janelas GridLayout
Outline e Properties 3.4.4 Adio dos componentes TextView,
3.3.5 Formatao de nmeros como moeda EditText, SeekBar e LinearLayout
corrente especfica da localidade e 3.4.5 Personalizao das visualizaes para
strings de porcentagem concluir o projeto
3.3.6 Implementao da interface 3.5 Adio de funcionalidade ao aplicativo
TextWatcher para lidar com 3.6 AndroidManifest.xml
alteraes de texto em componente 3.7 Para finalizar
EditText

3.1 Introduo
O aplicativo Tip Calculator (Fig. 3.1(a)) calcula e exibe possveis gorjetas para contas de
um restaurante. medida que voc insere cada dgito do valor de uma conta, tocando
b) Interface grca do usurio depois que ele
insere o valor 34.56 e muda a porcentagem de
a) Interface grca inicial do usurio gorjeta personalizada para 20%
Mova o cursor do
componente Seekbar
para alterar a
porcentagem de
gorjeta personalizada

A porcentagem de
gorjeta personalizada
selecionada com o
componente SeekBar
aparece aqui

Use o teclado numrico


para inserir o valor da
conta com
centavos o
aplicativo dividir o
valor inserido por
100.0 para calcular
o valor da conta

Use o boto de excluso


para remover
dgitos da direita para
a esquerda

Figura 3.1 Inserindo o total da conta e calculando a gorjeta.


70 Android: Como Programar

no teclado numrico, o aplicativo calcula e exibe o valor da gorjeta e o total da conta


(valor da conta + gorjeta) para uma gorjeta de 15% e para uma porcentagem de gor-
jeta personalizada (18% por padro). Voc pode especificar uma porcentagem de gor-
jeta personalizada de 0% a 30%, movendo o cursor de um componente SeekBar isso
atualiza a porcentagem personalizada mostrada e exibe a gorjeta personalizada e o total
(Fig. 3.1(b)). Escolhemos 18% como porcentagem personalizada padro porque muitos
restaurantes nos Estados Unidos acrescentam essa taxa de servio para festas com seis
pessoas ou mais. O teclado numrico na Fig. 3.1 pode ser diferente de acordo com a
verso de Android de seu AVD ou dispositivo ou se voc tiver instalado e selecionado
um teclado personalizado em seu dispositivo.
Comearemos testando o aplicativo voc vai utiliz-lo para calcular gorjetas de
15% e personalizadas. Em seguida, daremos uma viso geral das tecnologias utilizadas
para criar o aplicativo. Voc vai construir a interface grfica do aplicativo usando o edi-
tor Graphical Layout do IDE Android Developer Tools e a janela Outline. Por fim, vamos
apresentar o cdigo Java completo do aplicativo e fazer um acompanhamento detalhado.
Fornecemos online uma verso para Android Studio das Sees 3.2 e 3.4 (em ingls) em
http://www.deitel.com/books/AndroidHTP2.

3.2 Teste do aplicativo Tip Calculator


Abra e execute o aplicativo
Abra o IDE Android Developer Tools e importe o projeto do aplicativo Tip Calculator.
Execute os passos a seguir:
1. Ative o AVD do Nexus 4. Para este teste, usaremos o AVD do smartphone Nexus 4
que voc configurou na seo Antes de comear. Para ativar o AVD do Nexus 4,
selecione Window > Android Virtual Device Manager a fim de exibir a caixa de dilogo
Android Virtual Device Manager. Selecione o AVD do Nexus 4 e clique em Start...; em
seguida, clique no boto Launch na caixa de dilogo Launch Options que aparece.
2. Abra a caixa de dilogo Import. Selecione File > Import... para abrir a caixa de di-
logo Import .
3. Importe o projeto do aplicativo Tip Calculator. Expanda o n General, selecione
Existing Projects into Workspace e, em seguida, clique em Next > para ir ao passo
Import Projects. Certifique-se de que Select root directory esteja selecionado e, em
seguida, clique em Browse.... Na caixa de dilogo Browse For Folder, localize a pasta
TipCalculator na pasta de exemplos do livro, selecione-a e clique em OK. Certifi-
que-se de que Copy projects into workspace no esteja selecionado. Clique em Finish
para importar o projeto. Agora ele aparece na janela Package Explorer.
4. Ative o aplicativo Tip Calculator. Clique com o boto direito do mouse no pro-
jeto TipCalculator na janela Package Explorer e selecione Run As > Android Applica-
tion para executar o aplicativo Tip Calculator no AVD.

Digite um total de conta


Usando o teclado numrico, digite 34.56. Basta digitar 3456 o aplicativo posicionar os
centavos direita do ponto decimal. Se cometer um erro, pressione o boto de excluso
( ) para apagar um dgito direita por vez. Os componentes TextView sob os rtulos
da gorjeta de 15% e da porcentagem de gorjeta personalizada (18% por padro) mostram
o valor da gorjeta e o total da conta para essas porcentagens. Todos os componentes
TextView Tip e Total so atualizados sempre que voc insere ou exclui um dgito.
Captulo 3 Aplicativo Tip Calculator 71

Selecione uma porcentagem de gorjeta personalizada


Use o componente Seekbar para especificar uma porcentagem de gorjeta personalizada.
Arraste o cursor do componente Seekbar at que a porcentagem personalizada indique
20% (Fig. 3.1(b)). medida que voc arrasta o cursor, a gorjeta e o total para essa por-
centagem de gorjeta personalizada so atualizados continuamente. Por padro, o com-
ponente Seekbar permite selecionar valores de 0 a 100, mas especificamos um valor
mximo de 30 para este aplicativo.

3.3 Viso geral das tecnologias


Esta seo apresenta os recursos do IDE e as tecnologias do Android que voc vai usar
para construir o aplicativo Tip Calculator. Supomos que voc j conhece programao
orientada a objetos com Java se no conhece, os apndices contm uma introduo a
Java. Voc vai:
Usar vrias classes Android para criar objetos.
Chamar mtodos em classes e objetos Android.
Definir e chamar seus prprios mtodos.
Usar herana para criar uma subclasse da classe Activity do Android que define as
funcionalidades do aplicativo Tip Calculator.
Usar tratamento de eventos, classes internas annimas e interfaces para processar
as interaes da interface grfica do usurio.

3.3.1 Classe Activity


Ao contrrio de muitos aplicativos Java, os aplicativos Android no tm um mtodo main.
Em vez disso, eles tm quatro tipos de componentes executveis atividades, servios, pro-
vedores de contedo e receptores de transmisso por broadcast. Neste captulo, vamos discutir
as atividades, as quais so definidas como subclasses de Activity (pacote android.app).
Os usurios interagem com uma atividade por meio de componentes de visualizao*
isto , componentes da interface grfica do usurio. Antes do Android 3.0, normalmente
uma atividade distinta era associada a cada tela de um aplicativo. Como voc vai ver a
partir do Captulo 5, uma atividade pode gerenciar vrios fragmentos. Em um telefone,
cada fragmento geralmente ocupa a tela inteira e a atividade alterna entre os fragmentos
com base nas interaes do usurio. Em um tablet, as atividades frequentemente exibem
vrios fragmentos por tela para aproveitar melhor o tamanho grande da tela.

3.3.2 Mtodos de ciclo de vida de Activity


Ao longo de toda sua vida, uma atividade pode estar em um dentre vrios estados ativa
(isto , em execuo), pausada ou parada. A atividade transita entre esses estados em res-
posta a vrios eventos.
Uma atividade ativa visvel na tela e tem o foco isto , est no primeiro plano.
Essa a atividade com que o usurio est interagindo.
Uma atividade pausada visvel na tela, mas no tem o foco como quando uma
caixa de dilogo de alerta exibida.

* N. de T. Neste livro, os termos visualizao, Views e componentes de visualizao so usados de


forma intercambiada, conforme o contexto. Todos referem-se a componentes do tipo View.
72 Android: Como Programar

Uma atividade parada no visvel na tela e provvel que seja encerrada pelo sis-
tema quando a memria que ocupa for necessria. Uma atividade parada quando
outra se torna ativa.
medida que uma atividade transita entre esses estados, o runtime do Android
chama vrios mtodos de ciclo de vida todos os quais so definidos na classe Activity
http://developer.android.com/reference/android/app/Activity.html

Voc vai sobrescrever o mtodo onCreate em cada atividade. Esse mtodo chamado
pelo runtime do Android quando uma atividade est comeando isto , quando sua in-
terface grfica do usurio est prestes a ser exibida para que o usurio possa interagir com
a atividade. Outros mtodos de ciclo de vida importantes incluem onStart, onPause,
onRestart, onResume, onStop e onDestroy. Vamos discutir a maioria desses mtodos em
captulos posteriores. Cada mtodo de ciclo de vida de atividade que voc sobrescreve
deve chamar a verso da superclasse; caso contrrio, ocorrer uma exceo. Isso neces-
srio porque cada mtodo de ciclo de vida na superclasse Activity contm o cdigo que
deve ser executado, alm do cdigo que voc define em seus mtodos de ciclo de vida
sobrescritos.

3.3.3 Organizao de componentes de visualizao com


LinearLayout e GridLayout
Lembre-se de que os layouts organizam os componentes de visualizao em uma interfa-
ce grfica do usurio. Um componente LinearLayout (pacote android.widget) organiza
os views horizontalmente (o padro) ou verticalmente e pode dimension-los proporcio-
nalmente. Usaremos isso para organizar dois componentes TextView horizontalmente e
garantir que cada um utilize metade do espao horizontal disponvel.
GridLayout (pacote android.widget) foi introduzido no Android 4.0 como um
novo layout para organizar views em clulas em uma grade retangular. As clulas
podem ocupar vrias linhas e colunas, possibilitando layouts complexos. Em muitos
casos, GridLayout pode ser usado para substituir o componente TableLayout, mais
antigo e s vezes menos eficiente, que organiza os componentes de visualizao em
linhas e colunas, em que cada linha normalmente definida como um componente
TableRow e o nmero de colunas definido pelo componente TableRow que contm
a maioria das clulas. Normalmente, GridLayout exige nvel de API 14 ou mais alto.
Contudo, a Android Support Library fornece verses alternativas de GridLayout e de
muitos outros recursos de interface grfica do usurio para que voc possa utiliz-los
em verses mais antigas do Android. Para obter mais informaes sobre essa bibliote-
ca e como utiliz-la em seus aplicativos, visite:
http://developer.android.com/tools/support-library/index.html

Um componente GridLayout no pode especificar, dentro de determinada linha,


que o espao horizontal deve ser alocado proporcionalmente entre vrios componentes de
visualizao. Por isso, vrias linhas na interface grfica do usurio deste aplicativo colo-
caro dois componentes TextView em um componente LinearLayout horizontal. Isso
permitir colocar dois componentes TextView na mesma clula de GridLayout e dividir
o espao da clula igualmente entre eles. Vamos abordar mais layouts e visualizaes em
captulos posteriores para ver uma lista completa, visite:
http://developer.android.com/reference/android/widget/package-summary.html

Vous aimerez peut-être aussi