Anda di halaman 1dari 124

Programao Android (Bsico)

Hugo Dalevedove Bressiani

Apresentao
Android uma plataforma aberta voltada para dispositivos
mveis desenvolvida pela Google e atualmente mantida pela Open
Handset Alliance (OHA). Todas as aplicaes desenvolvidas para
essa plataforma foram criadas com a linguagem Java, o que facilita
muitos programadores com conhecimentos em Java (ou de outras
linguagens prximas de Java como C++ e C#) a desenvolver
aplicaes para o Android.
Esta apostila tem por objetivo mostrar de modo fcil como
programar na plataforma para dispositivos mveis da Google
(Android) usando a IDE Eclipse.
Para quem dedico este material?
Este material dedicado aos usurios experientes ou
iniciantes em programao (tanto para Desktop, Mbile e etc.), que j
tenha algum contato com a linguagem Java ou com uma de suas
derivadas (como C/C++ ou C#).

Capitulo 1 Viso geral sobre o Google Android


1.1) Introduo
1.2) Estrutura Geral da plataforma Google Android
1.2.1) A arquitetura do Android
1.2.2) Aplicaes
1.2.3) Android Runtime
1.2.4) Linux Kernel
Capitulo 2 Instalando e Configurando o Android SDK no Eclipse
2.1) Instalando o Eclipse
2.2) Instalando o Android SDK e o ADT-Plugin
2.3) Configurando o Android SDK no Eclipse
Capitulo 3 Construindo nossas aplicaes no Android
5.1) Desenvolvendo uma Calculadora Bsica
Aplicao da calculadora em execuo
5.2) Desenvolvendo uma aplicao simples de compras
5.3) Desenvolvendo uma aplicao de clculo de salrio
5.5) Desenvolvendo uma aplicao de lista de contatos
5.6) Desenvolvendo uma aplicao que visualiza imagens
Capitulo 4 Trabalhando com mais de uma tela em uma aplicao
Capitulo 5 Propriedades e eventos dos componentes trabalhados
Widget TextView
Widget EditText
Widget Button
Widget CheckBox/RadioButton
Widget ListView
Widget ImageView
Concluso a respeito do material

Capitulo 1
Viso geral sobre o Google Android
1.1) Introduo
Conforme mencionado na apresentao deste material,
o Android uma plataforma desenvolvida pela Google voltada
para dispositivos mveis, totalmente aberta livre (Open
Source), que foi divulgada em 5 de novembro de 2007.
Inicialmente o sistema Android foi desenvolvido pelo Google e
atualmente essa plataforma mantida pela OHA (Open
Handset
Alliance.
Visite
o
link
:
http://www.openhandsetalliance.com), um grupo constitudo por
aproximadamente 84 empresas as quais se uniram para inovar
e acelerar o desenvolvimento de aplicaes e servios, com o
objetivo e trazer aos consumidores uma experincia mais rica
em termos de recursos, menos dispendiosa em ternos
financeiros para o mercado mvel.

Um dos primeiros SmartPhones que


ofereceu suporte a esse sistema operacional foi o
G1 da empresa T-Mobile. Confira na imagem
seguinte:

G1 - T-Mobile

Atualmente o sistema Android se encontra hoje disponvel tanto em


SmartPhones quanto nos famosos Tablets. Confira abaixo alguns dos dispositivos
encontramos hoje no mercado com o sistema operacional Android:

SmartPhone Samsung Galaxy

Tablet Motorola XOOM

1.2) Estrutura Geral da plataforma Google Android


O Android SDK uma ferramenta de desenvolvimento que disponibiliza um
conjunto de APIs necessrias para desenvolver aplicaes para a plataforma Android,
utilizando a linguagem Java.
Vamos conhecer os recursos encontrados nessa plataforma:
- Application framework: Permite a reutilizao e substituio de componentes ;
- Dalvik virtual machine: uma Mquina Virtual Java (JVM) voltada para dispositivos
mveis ;
- Browser Integrado baseado no webkit engine ;
- Grficos Otimizados O Android constitudo por bibliotecas 2D e 3D baseada na
especificao OpenGL ES 1.0 ;
- SQLite: Sistema Gerenciador de Banco de Dados (SGBD) j embutido no Android
para guardar dados ;
- Suporte multimdia: A plataforma j oferece para udio, vdeo e formatos de imagem
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ;
- Telefonia GSM (dependente de hardware) ;
- Bluetooth, EDGE, 3G, e WiFi (dependente de hardware) ;
- Cmera, GPS, compasso, e acelermetro (dependente de hardware) ;
- Rico ambiente de desenvolvimento , incluindo um emulador de dispositivo,
ferramentas de depurao, memria, performance e um plugin para o Eclipse (ADT) ;

1.2.1) A arquitetura do Android

Arquitetura geral da plataforma

1.2.2) Aplicaes

O Android nos fornece um conjunto de aplicaes fundamentais, so elas:


- um cliente de e-mail;
- programa de SMS;
- agenda;
- mapas;
- navegador;
- contatos entre outros.
Todos os aplicativos acima presentes no Android foram desenvolvidos na
linguagem de programao Java.
O Android nos fornece um conjunto de bibliotecas C/C++ utilizadas por vrios
componentes do sistema. Veja algumas das bibliotecas abaixo:
- System C library: Consiste em uma implementao derivada da biblioteca C padro
baseado no sistema (libc) do BSD sintonizada para dispositivos rodando Linux.

- Media Libraries: Baseado no PacketVideos OpenCORE; so as bibliotecas que suportam os mais diversos
formatos de udio e vdeo, incluindo tambm imagens.
- Surface Manager: Responsvel pelo acesso ao subsistema de exibio bem como as mltiplas camadas de
aplicaes 2D e 3D;
- LibWebCore: Consiste em um web browser engine utilizado tanto no Android Browser quanto para exibies
web.
- SGL o engine de grficos 2D - 3D libraries: Uma implementao baseada no OpenGL ES 1.0 APIs; As
bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software de renderizao 3D altamente
otimizado includo no Android.
- FreeType Biblioteca responsvel pela renderizao de fontes bitmap e vector;
- SQLite Conforme j mencionado, consiste no sistema gerenciador de banco de dados (SGBD) relacional
disponvel para todas as aplicaes.
1.2.3) Android Runtime
O Android constitudo por um conjunto de bibliotecas que fornece a maioria das funcionalidades disponveis nas
principais bibliotecas da linguagem Java.
Toda aplicao Android roda em seu prprio processo, com sua prpria instncia da mquina virtual Dalvik. O
Dalvik foi escrito de forma a executar vrias VMs eficientemente. Ele executa arquivos .dex, que otimizado para
consumo mnimo de memria. A VM baseada em registros e roda classes compiladas pela linguagem Java que
foram transformadas em arquivos .dex, atravs da ferramenta dx includa no SDK.
O Dalvik VM foi baseado no kernel do Linux para funcionalidades subjacentes como o encadeamento e a gesto
de baixo nvel de memria.
1.2.4) Linux Kernel
O Android foi projetado em cima da verso 2.6 do kernel do Linux para os servios centrais do sistema, tais como
segurana, gesto de memria, gesto de processos, etc. O kernel tambm atua como uma camada de
abstrao entre o hardware e o resto do software.

Capitulo 2
Instalando e Configurando o Android SDK
no Eclipse
Para a elaborao desse material eu fiz o uso do Eclipse
Juno (Eclipse 4.2 para Windows), o SDK do Android Reviso 20 e
o plugin do Android para o Eclipse ADT-20.0.0. Qualquer verso
(de preferncia superior) dos programas citados acima serve.
Para que toda essa aplicao funcione necessrio que voc
tenha instalado, antes de tudo, a Mquina Virtual Java (de
preferncia a verso 6 ou posterior). Bom, mos a obra.

Para saber se voc possui uma Maquina virtual Java entre no prompt de
comando de digite a seguinte linha:
java version
Se mostrar algo parecido como demonstra a figura seguinte:

Maquina Virtual Java instalada no computador


Significa que voc possui uma mquina virtual Java instalada no seu
computador, caso contrrio, instale o JRE. Voc pode fazer o download do Java pelo
link abaixo:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

2.1) Instalando o Eclipse

A ferramenta Eclipse Juno (Eclipse 4.2) a nossa


ferramenta de desenvolvimento que utilizaremos para criar
nossas aplicaes Android. A linguagem que utilizaremos para
criar as aplicaes ser a linguagem Java, na qual a ferramenta
Eclipse d suporte.
Primeiramente, precisamos efetuar o download da
ferramenta antes de instalarmos. Para isso, basta entrar no
seguinte endereo abaixo:

Feito isso ser carregado a pgina de download, conforme demonstra a figura abaixo:

Pgina de download do Eclipse


Se observamos a pgina de download, no encontramos nenhum Eclipse
Juno. Mas ento, onde ele se encontra ? O Eclipse Juno e conhecido como Eclipse
verso 4.2 (ou melhor, Eclipse Classic 4.2). O nome Juno simplesmente um nome
cdigo (code name) da verso 4.2 (Cada verso do Eclipse tem um nome para cada
verso).

O Eclipse Juno (Eclipse Classic 4.2) est disponvel para download nas
verses 32 bits e 64 bits. Qual das verses devo baixar ? Primeiramente devemos nos
certificar da verso do nosso sistema operacional (se ele de 32 ou 64 bits). Se o
sistema operacional for de 32 bits, obrigatoriamente terei que baixar a verso 32 bits
do Eclipse. Se a verso do seu sistema for de 64 bits, o mais vivel voc efetuar o
download da verso 64 bits , porm, voc pode tambm baixar a instalar a verso 32
bits do Eclipse em seu sistema de 64 bits sem problemas.
Para a elaborao desta obra, usarei o Eclipse na verso 32 bits. Para isso
basta clicar no link com o ttulo Windows 32 Bit referente ao Eclipse Classic 4.2. Feito
isso vai se abrir a pgina conforme demonstra a figura abaixo:

Pgina
download
Eclipse

de
do

Agora basta clicar no link de download para baixar a ferramenta Eclipse.

Depois de efetuado o download da ferramenta Eclipse. Vamos instalar a nossa


ferramenta em um local apropriado. Para instalar o Eclipse, basta descompact-lo em
um diretrio desejado. O diretrio de instalao do Eclipse para esse caso ser o
diretrio raiz C:\. Ao descompactar o arquivo da aplicao, certifique-se de que foi
gerado o diretrio C:\eclipse e que o mesmo apresenta o contedo demonstrado na
figura abaixo:

Contedo do diretrio eclipse


Se tudo estiver de acordo com a figura acima, sigfinica que os procedimentos foram
seguidos, conforme mencionado.

2.2) Instalando o Android SDK e o ADT-Plugin


O Eclipse pelo fato de
trabalhar com a linguagem Java ,
no acompanha nenhum kit de
desenvolvimento para Android.
Esse kit de desenvolvimento
devemos obter no site de
desenvolvedores do Android.
Para essa obra estarei
utilizando a verso do Android
SDK reviso 20. Para efetuar o
download devemos visitar o link
abaixo:
http://developer.android.com/sdk/
index.html
Depois de visitar o link ser
aberta a seguinte

Site do Android Download do Android SDK

Para efetuar o download


do Android SDK, basta clicar no
boto
Download
the
SDK
Windows. Depois de efetuado o
download do Android SDK, vamos
instalar ele no nosso computador.
Execute o utilitrio de instalao,
conforme voc confere na figura
abaixo:
Instalao do Android SDK

Clique em Next para


continuar. Na prxima seo, ser
verificado se voc tem o Java
instalado em sua mquina. Se voc
tiver, a deteco ocorrer com
sucesso, conforme voc pode
conferir na figura seguinte:
Instalao do Android SDK

Vamos clicar em Next para


continuarmos
com
a
instalao.
Possivelmente ao chegar na prxima
tela, ser solicitado para quais usurios a
instalao ser visvel, conforme
demonstrado ao lado:
Instalao do Android SDK

Voc vai escolher a opo mais


apropriada para o seu caso. Depois disso
clique em Next e na prxima tela vamos
definir o diretrio de instalao do Android,
conforme mostrado na figura abaixo:
Instalao do Android SDK

Nessa instalao , irei instalar o


Android
no
diretrio
c:\android_sdk\,
conforme voc confere na figura ao lado:

Instalao do Android SDK

Vamos clicar me Next para


continuar o processo. Na prxima tela
simplesmente clique em Install para que a
instalao seja feita, conforme demonstrado
ao lado:
Instalao do Android SDK

Aps a instalao ser concluda,


execute o Android SDK Manager. Ao
carregar a aplicao, o programa ir
processar todos os recursos disponveis,
conforme demonstra a figura ao lado:

Android SDK Buscando atualizaes

Depois de concludo processo,


podemos ver que o Android SDK nos
oferece vrias plataformas Android e entre
outros recursos que podemos utilizar
durante o desenvolvimento de nossas
aplicaes. Por padro, a opo de
download da plataforma Android marcada
a verso 4.1 (Jelly Bean), conforme
podemos ver ao lado:

Android SDK Processo concludo

Porm, no iremos trabalhar com essa verso 4.1 da plataforma. Nesta obra
iremos trabalhar com a verso 2.2 do Android (Froyo), pelo fato dessa verso do
sistema operacional existir na maioria das plataformas mveis existentes (Smartphones
e at Tablets). Todas as aplicaes desenvolvidas nessa verso do sistema, na prtica,
so suportadas pelas verses superiores do Android (como o 4.0 e o 4.1).
Para isso vamos desmarcar a opo Android 4.1 (API 16) e vamos marcar as
seguintes opes do Android 2.2, conforme demonstra a figura seguinte:

Android SDK - Preparando para instalar o Android 2.2

Se rolarmos um pouco abaixo,


teremos na seo Extras a opo
Google USB Driver marcado, conforme
demonstrado na figura seguinte:
Android SDK Google USB Driver

Para que serve esse recurso ?


Esse recurso bastante til quando queremos testar a nossa aplicao
diretamente no dispositivo mvel real (sem ser pelo emulador), ou seja, ao invs de
rodar a aplicao no emulador, ele ir instalar a aplicao no dispositivo (smartphone)
plugado em uma porta USB e ir execut-lo em seguida. Vamos deixar essa opo
marcada.

Para instalarmos os recursos


selecionados, clique no boto Install 4
packages e sem seguida ser aberta a
seguinte caixa de dilogo:
Preparando para instalar

Marque a opo Accept All para


confirmar a instalao de todos os itens
que definimos anteriormente, e em
seguida, clique em Install. O processo de
instalao ir acontecer, conforme voc
pode ver na figura ao lado:
Android SDK Download do Android 2.2 e de seus recursos

Durante o download do Android e


dos seus recursos, dever surgir a
seguinte caixa de dilogo, conforme
demonstra a figura abaixo:
Android SDK Manager Log Processo de instalao

Aguarde at que o processo de download esteja concludo. Quando o


download terminar, feche a caixa de log e em seguida, feche o Android SDK.
Vamos efetuar agora o download do plugin ADT (Android Development Tool),
responsvel para que possamos programar no Android atravs do Eclipse.
Para efetuar o download, entre no link abaixo:
http://developer.android.com/sdk/installing/installing-adt.html

Ao entrar no link, ser


carregado
a
seguinte
pgina
conforme demonstra a prxima figura:

Site do Android Pgina de download do plugin ADT

Se rolarmos a pgina abaixo


, encontraremos o link para o
download do plugin, conforme voc
confere em seguida:
Para efetuar o download basta clicar
no local indicado na figura.
Depois do download do plugin,
coloque-o
dentro
do
diretrio
C:\eclipse\, local onde se encontra
instalado
a
ferramenta
de
desenvolvimento para Java (Android).

2.3) Configurando o Android SDK no Eclipse


Uma etapa concluda. Agora vamos configurar o Android SDK no Eclipse, de forma que
possamos desenvolver nossas aplicaes para essa plataforma atravs do plugin ADT
que acabamos de baixar.
Quando voc executar o Eclipse pela primeira vez, ser solicitado um diretrio de
Workspace (diretrio de trabalho), que o local no qual o Eclipse vai gerar os
projetos, conforme voc confere na figura seguinte:

Diretrio do Workspace

Escolha o diretrio desejado para seu Workspace e , caso voc deseje que ela seja
definitivo, marque a opo Use this as the default and do not ask again. Depois disso
clique em OK.

Feito isso, o ambiente de programao


Eclipse
ser
carregado,
conforme
demonstra a figura seguinte:

Ambiente de programao Eclipse

Agora vamos instalar o plugin do Android


para podemos fazer a interface do Eclipse
com o Android SDK, permitindo que a gente
desenvolva
aplicaes
para
essa
plataforma. Vamos no menu Help e sem
seguida selecione Install New Software,
conforme demonstra a figura abaixo:
Install New Software

Feito isso ser aberta a caixa de dilogo


conforme demonstra figura seguinte

Caixa de dilogo - Install

Para instalarmos o plugin do Android,


clique no boto Add, e ser exibida uma
caixa de dilogo conforme mostra a figura
abaixo:
Caixa de dilogo - Add Repository

Agora vamos clicar no boto Archive e


iremos procurar e selecionar o plugin do
Android A.D.T-16.0.1.zip. Preencha o campo
Name como mostra a figura abaixo:
Caixa de dilogo - Add Site

Ao clicar em OK ser mostrada uma tela,


conforme demonstra a figura seguinte:

Caixa de Dialogo - Install

Agora marque as opes Developer


Tools e NDK Plugin conforme mostra a
figura seguinte:

Caixa de Dialogo - Install

Aps fazer isso clique no boto Next, e


em seguida ser mostrada a prxima tela,
conforme demonstra a figura ao lado:

Ao clicar em Next ser aberta uma tela


de Licena, conforme a figura abaixo

Caixa de Dialogo - Install

Para prosseguir com a instalao marque


a opo I accept the terms of the license
agreements e em seguida, clique no
boto Finish. Aps isso ocorrer alguns
processos, como demonstra a figura
seguinte, aguarde at terminar.
Instalando do Android no Eclipse

Se em algum momento durante o processo for exibida uma caixa de dilogo,


conforme mostra a figura seguinte:

Pode clicar em OK sem problemas, e o processo se completar. Aps o trmino do


processo voc deve reiniciar o Eclipse, clicando em Yes, na mensagem abaixo:

Aps o Eclipse ter reiniciado, vamos fazer


agora as configuraes para fazer conexo
com o emulador do Android. Vamos no
menu Window / Preferences. Aberta a
caixa de dilogo, selecione o item
Android e ser mostrada uma tela,
conforme demonstra a figura seguinte:

Certifique-se de que os dados esto de


acordo com a figura acima (apontando
para o diretrio C:\android_sdk\). Caso
no esteja, especifique o diretrio onde
voc instalou o Android SDK (no caso o
C:\android_sdk\).

Para finalizar vamos definir um dispositivo virtual,


conhecido como AVD (Android Virtual Device),
onde nossas aplicaes daqui para frente sero
executadas. Para isso, v no menu Windows /
AVD Manager, conforme mostra a figura
seguinte:

Feito o procedimento acima, ser aberta


uma tela conforme mostra a figura
seguinte:

Para criarmos um dispositivo virtual clique


no boto New, e em seguida ser aberta
uma tela conforme mostra a figura
seguinte:
Inicialmente, vamos configurar o
bsico pra executarmos a nossa aplicao.
Em Name voc define o nome do AVD,
vamos cham-lo de Emulador.
Em
Target
definirmos
a
plataforma-alvo a ser executada, neste
caso s temos uma, o Android 2.2 - API
Level 8. Vamos selecion-la.
Em Skin na opo Built-in a
opo padro Default (WVGA800).
Vamos mudar essa opo para HVGA.

Depois de preencher todos os campos, a


tela de criao do AVD deve estar de
acordo com a figura abaixo:

Para criarmos nosso AVD, clique no boto


Create AVD e pronto. O resultado voc
confere na figura seguinte:

At aqui aprendemos a instalar e


configurar a plataforma Android no Eclipse.
Agora vamos dar nossos primeiros passos
desenvolvendo uma aplicao bsica no
Android.

Capitulo 4
Construindo nossas aplicaes no Android
Vamos colocar a mo na massa ? A partir de agora iremos comear a desenvolver as
nossas aplicaes no Android utilizando os componentes descritos no captulo anterior.
Comearemos com aplicaes simples e aos poucos iremos evoluir, criando aplicaes
mais ricas.

4.1) Desenvolvendo uma Calculadora Bsica


Vamos construir a nossa primeira aplicao que vai consistir em uma calculadora
bsica com as quatro operaes aritmticas. Para criar um projeto em Android
(conforme j foi mostrado mas, mostro novamente aqui) vamos no menu File/New e
em seguida selecione Others. Em seguida expanda a pasta Android e logo aps
selecione a opo Android Application Project, conforme mostra a figura seguinte :

Android Application Project

OBS : Possivelmente (isso


depende das configuraes do
Eclipse), voc poder ver o
subitem Android Application
Project no prprio menu File /
New, conforme demonstra a
imagem seguinte. Caso isso
acontea, voc pode selecionar
que o mesmo processo dos
passos descritos acima.

Seguido um dos passos descritos


acima, ir se abrir a caixa de
dilogo abaixo:

Android Application Project (pelo menu)

Agora vamos preencher os campos, conforme


abaixo:
Application Name : Calculadora
Project Name : Calculadora
Package Name : com.example.calculadora
Confira como ficou na figura ao lado:

Criando o projeto Calculadora Campos preenchidos

Agora na prxima seo (clicando em


Next) escolhemos o cone para a nossa
aplicao (conforme demonstra a imagem
seguinte). Fique a vontade para escolher
seu cone (Dica : escolha cones que
tenham de uma certa forma, relao com a
aplicao em desenvolvimento).

Depois de definir seu cone vamos para a


prxima etapa, onde vamos escolher qual tipo de
Activity iremos criar (por padro, o BlackActivity),
conforme demonstra a prxima imagem:

Agora na prxima seo (clicando em


Next)
vamos
preencher
as
informaes da Activity, conforme
mostrado abaixo:
Activity Name : CalculadoraActivity
Layout Name : activity_calculadora
Title : Calculadora
Confira como ficou na figura seguinte:

Depois de preenchidas as informaes, vamos criar o nosso projeto clicando


no boto Finish. Feito isso o nosso projeto ser criado.
A primeira coisa que iremos fazer a alterar a estrutura de layout (trocar de
RelativeLayout para LinearLayout) que vai comportar nossos componentes.
Depois de alterar a estrutura de layout vamos selecionar o componente
TextView na tela (cuja frase est escrito Hello World) e vamos alterar as seguintes
propriedades, como segue: TextView
Propriedade
Text

Valor
Digite o primeiro nmero

Logo aps , arraste e solte um componente Plain Text (EditText) abaixo do componente
acima inserido, e altere seu nome (ID) para ednumero2 (conforme j foi mostrado).
Veja o resultado:

Tela da aplicao em desenvolvimento

Agora vamos adicionar um componente Button abaixo da caixa de texto, que vai ser o
nosso boto de somar os nmeros. Depois de adicionar, vamos alterar as suas
propriedades, conforme mostrado abaixo:
Button

Depois disso vamos atribuir um nome (ID) para o componente, que vai se chamar
btsomar. Veja o resultado abaixo:

Tela da aplicao em desenvolvimento

Para comearmos, vamos fazer o teste da nossa aplicao realizando somente soma
dos nmeros (implementaremos as outras operaes restantes daqui a pouco). Agora
salve o arquivo activity_calculadora.xml , para confirmar todas as alteraes feitas,
antes de trabalharmos com a parte da programao Java (que vai fazer uso dos
componentes da tela da aplicao via cdigo).
Depois de salvar o arquivo XML vamos abrir o arquivo CalculadoraActivity.java
(situado no pacote com.example.calculadora, que fica dentro do diretrio src). Veja a
imagem abaixo:

Arquivo CalculadoraActivity.java

Feito isso ser aberto o seu contedo conforme demonstrado na imagem seguinte:

Contedo do arquivo CalculadoraActivity.java


Se voc observar no cdigo acima, na seo onde se declaram os pacotes, existe a
seguinte instruo :

Nessa linha se voc observar (conforme demonstra a figura acima), existe um sinal de
+, que na verdade indica que h mais de uma importao (processo esse que o
eclipse faz para simplificar e organizar a compreenso do cdigo). Para voc
visualizar todos os pacotes utilizados basta clicar nesse sinal. Confira o resultado na
prxima figura:

Visualizando todos os pacotes


Para comear, vamos importar alguns pacotes da plataforma Android que sero
necessrios para o desenvolvimento da nossa aplicao. Na seo onde se encontram
os pacotes importados , vamos importar mais alguns pacotes digitando as seguintes
linhas de comando abaixo:

Agora no cdigo do nosso programa, antes da linha:


Digite:
Agora vamos explicao do cdigo acima. Como voc pode ver , os widgets tambm
podem ser usados no nosso cdigo Java. Se no cdigo XML eu possuir um widget do
tipo EditText, para acessar esse componente pelo Java preciso fazer uso da classe
EditText. Cada widget no XML possui o seu respectivo em classe Java, logo, se
possui um widget Button, para acess-lo devo fazer uso da classe Button e assim vai.
Agora dentro do mtodo onCreate aps a linha:
Digite as seguintes linhas de cdigo:
Agora vou explicar as linhas de comando acima que adicionamos. A linha:
ednumero1 = (EditText) findViewById(R.id.numero1);

Faz referncia ao primeiro EditText, atravs do mtodo findViewById com o parmetro


R.id.numero1.
Se lembra do nome da primeira EditText que est no cdigo XML? Ela se chama
ednumero1.
Vamos entender. Observe que para fazer referncia ao EditText pelo mtodo
findViewById eu passei o parmetro R.id.numero1.
Na segunda instruo que digitamos, para fazer referncia segunda EditText, cujo
nome ednumero2, pelo mtodo findViewById, passei o parmetro R.id.numero2.
Como voc pode ver, estou fazendo uso da classe R (situado dentro do diretrio gen,
presente no pacote com.example.calculadora) que funciona como interface entre o
cdigo Java e o arquivo XML. O procedimento o mesmo para o componente Button.
Agora iremos adicionar um evento em nosso componente Button que ser responsvel
por detectar toda vez que ele for clicado, executando um conjunto de instrues
aps o evento (que vai consistir na soma dos nmeros e na exibio do resultado). Para
adicionarmos esse evento em nosso componente, basta escrevermos, aps a ltima
instruo que adicionamos, a seguinte linha de cdigo:

Toda vez que eu clicar no boto ele ir mostrar o resultado da soma na tela atravs de
uma caixa de mensagem. timo!
Vamos executar a nossa aplicao? Para executar faa os mesmos procedimentos que
j mostrei. O resultado da execuo dessa aplicao voc v na figura seguinte:

Aplicao em execuo
OBS: Provavelmente durante a execuo da aplicao ao entrar com um nmero, deve
ter surgido no dispositivo um teclado virtual (como mostra a figura acima), para ocultar
ele s pressionar ESC.
Irei descrever o cdigo do evento de clique. O mtodo setOnClickLisneter serve para
definir um evento de clique em um componente. Como parmetro, criamos uma
instncia da interface OnClickListener, e dentro da mesma existe um mtodo
chamado onClick, que ser disparado toda vez que o boto for clicado.

A linha:
Cria uma varivel chamada num1 e atribui a ela o valor que est contido dentro do
componente identificado como ednumero1. Eu fao uso do mtodo parseDouble da
classe Double pois o contedo uma String. Observem que chamo o mtodo getText
de ednumero1 para retornar o contedo. Diferente de muitos mtodos de retorno
String, esse mtodo getText no retorna uma String, mais sim um tipo chamado
Editable. Por isso chamei o mtodo toString de getText para que me retornasse uma
String. A descrio da prxima linha e a similar ao que j foi explicado.
Logo aps a soma dos nmeros que ser armazenada na varivel soma , vem o cdigo
em seguida:

Que mostra a soma dos nmeros digitados na tela. Para conseguirmos exibir uma
mensagem na tela, tivemos que fazer uso da classe AlertDialog.Builder, responsvel
por criar caixas de dilogo e exibi-las. Vamos aos comentrios.
A linha de comando:
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);

Cria a instncia da classe AlertDialog.Builder que ser representada e guardada


dentro da varivel dialogo. Na linha seguinte:
dialogo.setTitle("Resultado soma");

Define o ttulo da caixa de dilogo atravs do mtodo setTitle. Na linha seguinte:


dialogo.setMessage("A soma " + soma);

Define a mensagem a ser exibida atravs do mtodo setMessage. Na linha seguinte:


dialogo.setNeutralButton("OK", null);

Define o boto OK da caixa de texto atravs do mtodo setNeutralButton. O


parmetro null indica que nenhuma ao ser executada quando o boto for clicado
(simplesmente a caixa ser fechada e nada mais). E para finalizar:
dialogo.show();

Que responsvel por exibir a mensagem na tela por imediato.


Agora vamos continuar as outras operaes certo ? Retornaremos ento para a tela da
nossa aplicao e vamos adicionar mais 3 botes referentes as operaes restantes.
Vamos adicionar na tela mais trs botes como segue (um em baixo do outro, conforme
a sequncia abaixo):

btsubtrair = (Button) findViewById(R.id.btsubtrair);


btmultiplicar=(Button)findViewById(R.id.btmultiplicar
);
btdividir = (Button) findViewById(R.id.btdividir);
btsubtrair.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 - num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado subtrao");
dialogo.setMessage("A subtrao " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
}
});
btmultiplicar.setOnClickListener(new View.
OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 * num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado multiplicao");
dialogo.setMessage("A multiplicao " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
}
});
btdividir.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View arg0) {
double num1 = Double.parseDouble
(ednumero1.getText().toString());
double num2 = Double.parseDouble
(ednumero2.getText().toString());
double soma = num1 / num2;
AlertDialog.Builder dialogo = new
AlertDialog.Builder(CalculadoraActivity.this);
dialogo.setTitle("Resultado diviso");
dialogo.setMessage("A diviso " + soma);
dialogo.setNeutralButton("OK", null);
dialogo.show();
} });