apostila de android : programação básica (android studio) free

Download Apostila de Android : Programação Básica (Android Studio) Free

If you can't read please download the document

Upload: apostila-de-android

Post on 28-Sep-2015

2.039 views

Category:

Documents


230 download

DESCRIPTION

Mostra passo a passo como desenvolver aplicações voltadas para Android, utilizando a nova ferramenta de desenvolvimento, o Android Studio.DOWNLOAD OS ARQUIVOS : http://goo.gl/jgTXaM

TRANSCRIPT

  • 2

    Aviso sobre esta apostila Antes de iniciar a leitura deste material, veja esse aviso: Este material usa a licensa Creative Commons isto significa que ELE PODE SER DISTRIBUDO LIVREMENTE, porm, SOBRE AS SEGUINTES REGRAS :

    Esse material NO PODER SER COMERCIALIZADO Essa material NO PODER SER DEVIRADO E todos os crditos do autor DEVERO SER MANTIDOS

  • 3

    O Sucesso da Apostila de Android A Apostila de Android Programando Passo a Passo hoje referncia didtica de material sobre desenvolvimento de aplicaes e sistemas para a plataforma Google Android, conhecido tanto aqui no Brasil quanto em outros pases (somando-se mais de 65 pases). Hoje a Apostila de Android j chegou a aproximadamente 200.000 acessos (feito pelos mais diversos usurios como estudantes e profissionais da rea de programao) Hoje ela usada por universidades e professores que ministram cursos sobre desenvolvimento Android (Tanto na rea de criao de aplicaes e jogos).

    Sobre o Autor da Apostila

    Luciano Alves da Silva Bacharelado em Cincia da Computao pela UNISUAM (Rio de Janeiro RJ) e Ps-Graduado em Docncia do Ensino Superior pelo Instituto A Vez do Mestre (Universidade Cndido Mendes UCAM, no Rio de Janeiro). Possui conhecimento e domnio das linguagens de programao Pascal, Java, C/C++, C#, Visual Basic, Delphi, PHP e HTML. J criou Ambientes de Desenvolvimento Integrado (conhecidos como IDE) como o MakeWare (que trabalha com as linguagens Pascal, C++ e Java) e o AlgoWare (interpretador de algoritmos).

    autor tambm dos seguintes livros, pela editora AGBOOK

    - Aprenda Passo a Passo a Programar em Android Guia Essencial para Desenvolvedores

    - Desenvolvendo Jogos com a Plataforma XNA 2 Edio Guia para Desenvolvedores.

    - Desenvolvendo Jogos com o Framework MONOGAME Guia para Desenvolvedores.

    - Desenvolvendo Jogos 2D com Plataforma Java Guia para Desenvolvedores.

  • 4

    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 e claro como desenvolver aplicaes para dispositivos mveis que utilizam o sistema operacional Google Android atravs a ferramenta Android Studio (baseada na IDE IntelliJ IDEA). 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#).

    O

  • 5

    ndice analtico

    Capitulo 1 Viso geral sobre o Google Android ........................................... 7

    1.1) Introduo ............................................................................................... 7

    1.2) Estrutura Geral da plataforma Google Android ....................................... 9

    1.2.1) A arquitetura do Android .................................................................... 10

    1.2.2) Aplicaes .......................................................................................... 10

    1.2.3) Android Runtime ................................................................................ 11

    1.2.4) Linux Kernel ....................................................................................... 11

    1.3) Para qual verso do Android devemos desenvolver as aplicaes ? ... 12

    Capitulo 2 Instalando e Configurando a Ferramenta de Desenvolvimento para Android ................................................................................................... 14

    2.1) A ferramenta de desenvolvimento Android Studio ................................ 14

    2.2) Observaes gerais sobre o Android Studio ......................................... 15

    2.3) Baixando e configurando os componentes da ferramenta de desenvolvimento .......................................................................................... 17

    2.3.1) A Mquina Virtual Java ...................................................................... 17

    2.3.2) O Android SDK .................................................................................. 21

    2.3.3) O Android Studio ................................................................................ 35

    Capitulo 3 Comeando a programar no Android ........................................ 50

    Conhecendo a estrutura geral de um projeto no Android Studio.................. 58

    ....................................................................... 59

    sources) ......................................................................... 62

    .................................................................................. 62

    ....................................................................................... 63

    ....................................................................................... 63

    .................................................................................... 64

    ........................................................................................ 64

    Viso geral da ferramenta de desenvolvimento ........................................... 64

    Executando a nossa aplicao..................................................................... 66

  • 6

    Capitulo 4 Conhecendo as widgets do Android ......................................... 86

    4.1) A paleta de componentes e suas widgets ............................................. 86

    .............................................................................. 87

    ......................................................................... 90

    .............................................................................. 91

    ......................................................................... 92

    ....................................................................... 92

    ................................................................................ 94

    Capitulo 5 Construindo nossas aplicaes no Android ............................ 95

    5.1) Desenvolvendo uma Calculadora Bsica ............................................. 95

    Aplicao da calculadora em execuo ..................................................... 115

    5.2) Desenvolvendo uma aplicao simples de compras .......................... 115

    5.3) Desenvolvendo uma aplicao de clculo de salrio .......................... 121

    5.4) Desenvolvendo uma aplicao de lista de contatos ........................... 130

    5.5) Desenvolvendo uma aplicao que visualiza imagens ....................... 134

    Capitulo 6 Trabalhando com mais de uma tela em uma aplicao ......... 145

    6.1) Desenvolvendo um Sistema de Cadastro (Primeira verso) ............... 153

    Capitulo 7 Trabalhando com menus em uma aplicao .......................... 177

    Capitulo 8 Propriedades e eventos dos componentes trabalhados ....... 187

    Widget TextView ........................................................................................ 187

    Widget EditText .......................................................................................... 188

    Widget Button ............................................................................................. 190

    Widget CheckBox/RadioButton .................................................................. 191

    Widget ListView ......................................................................................... 192

    Widget ImageView ..................................................................................... 193

    Concluso a respeito do material ............................................................... 195

  • 7

    Capitulo 1 Viso geral sobre o Google Android

    1.1) Introduo

    onforme 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

    C

  • 8

    Atualmente o sistema Android se encontra hoje disponvel tanto em SmartPhones quanto nos Tablets. Confira abaixo alguns dos dispositivos encontramos hoje no mercado com o sistema operacional Android:

    SmartPhone Samsung Galaxy S3

    Tablet Samgung Galaxy Note

  • 9

    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 e performance.

  • 10

    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:

  • 11

    - 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: B 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,

    da 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.

  • 12

    1.3) Para qual verso do Android devemos desenvolver as aplicaes ? Quando desenvolvemos uma aplicao para um determinado sistema operacional, normalmente, precisamos fazer a seguinte pergunta : Para qual verso do S.O devemos desenvolver ? Considero esse um dos pontos mais importantes que devemos refletir antes de desenvolvermos uma aplicao. Como neste material iremos desenvolver aplicaes voltados para a plataforma Android, devemos pensar para qual verso da plataforma precisamos desenvolver. 1.3.1) Qual verso da plataforma Android a mais utilizada no momento ? Para falar a respeito dessa situao, irei mostrar aqui um grfico que mostra quais verses do Android so as mais usadas no mundo todo :

    Grfico de Estatstica a respeito do S.O Android mais usado

    O grfico da esttica acima foi feito em dezembro de 2014, onde nele podemos observar que as verses do Android mais utilizadas so o Jelly Bean (verso 4.1 4.3) e KitKat (4.4), praticamente as duas esto no empate. As verses mais antigas do Android como Eclair (verso 2.1) e Donut (verso 1.6) j nem so mais citadas e faladas hoje em dia. A verso 5.x do Android recentemente lanada, o Lollipop, ainda est comeando a se popularizar.

  • 13

    Hoje em dia, se fomos em alguma loja para comprar um aparelho (Smartphone ou Tablet Android) iremos adquiri-lo com o S.O Android verso 4.0 para cima. Se olharmos por esse ponto de vista, devemos pensar em desenvolvermos nossa aplicao utilizando, como base, a verso 4.0. 1.3.2) O Publico Um outro fator muito importante , e que destaco aqui , a questo O PUBLICOlado, visto que muitos usurios ainda possuem aparelhos Android com uma verso mais antiga (como a verso 2.3 e 2.2), logo, devemos pensar tambm

    1.3.3) Qual prioridade devemos dar : Publico ou Verso do S.O ? Agora a questo : Como combinar a questo PUBLICO e VERSO do S.O para desenvolvermos a aplicao ? Se voc pretende desenvolver uma aplicao Android simples (como um pequeno sistema de cadastro), podemos, se quisermos, dar prioridade a questo PUBLICO, procurando desenvolver sua aplicao Android para uma verso mais antiga, porm, ainda NO OBSOLETA . Agora se voc desenvolver uma aplicao Android cheia de muitos recursos, cujos componentes s existem em verses mais atuais do sistema, devemos dar prioridade a questo VERSO do S.O.

  • 14

    Capitulo 2 Instalando e Configurando a Ferramenta de Desenvolvimento para Android

    ara a elaborao dessa nova verso do material, fiz o uso da nova ferramenta de desenvolvimento para Android, o Android Studio (baseado na ferramenta IntelliJ IDEA). Para que a ferramenta de

    desenvolvimento funcione necessrio que voc tenha instalado, antes de tudo, a Mquina Virtual Java (de preferncia a verso 7 ou posterior). Bom, mos a obra. 2.1) A ferramenta de desenvolvimento Android Studio H algum tempo atrs a ferramenta de desenvolvimento Eclipse com o plugin ADT focado para o desenvolvimento Android (junto com o Android SDK), deixou de ser a ferramenta de desenvolvimento oficial para Android, sendo

    da muitos programadores usam ela). Agora o Google adotou como ferramenta oficial de desenvolvimento o Android Studio (baseada e inspirada na ferramenta IntelliJ IDEA) , onde podemos desenvolver nossas aplicaes para Android utilizando a linguagem de programao Java. Vejamos a figura da IDE na imagem seguinte :

    P

  • 15

    A ferramenta de desenvolvimento Android Studio

    2.2) Observaes gerais sobre o Android Studio A ferramenta Android Studio encontra-se disponvel para download no seu atual site oficial : https://developer.android.com/sdk/index.html. Eis a pgina do site carregada abaixo :

    Site oficial da ferramenta Android Studio

  • 16

    NO BAIXE A VERSO SUGERIDA PELO SITE Isso mesmo leitor, NO IREMOS BAIXAR a verso sugerida pelo site

    a com o Android SDK).

    processador, suporte a acelerao de HARDWARE e etc. Possivelmente voc (que est lendo esse material) e outras pessoas , encontraram muitos problemas durante a configurao e execuo da verso

    Em resposta a alguns leitores das minhas apostilas, recomendei que para NO USEM a ferramenta Android Studio, devido a toda essa problemtica

    SOLUO MAIS VIVEL (E ALTAMENTE) RECOMENDADA Depois de algumas anlises e pesquisas sobre o Android Studio, descobri uma soluo mais vivel e prtica para usarmos essa nova ferramenta (oficial) sem muitos problemas (independente da configurao de sua mquina). O ideal para quem for programar no Android Studio baixarmos todos os seus

    Android Studio (sem o SDK) e o Android SDK (avulso) realizando suas configuraes de forma independente.

  • 17

    2.3) Baixando e configurando os componentes da ferramenta de desenvolvimento 2.3.1) A Mquina Virtual Java Bom, como todo bom programador deve saber, para iniciarmos o nosso desenvolvimento com Android devemos ter instalado (como pr-requisito do Android Studio e do Android SDK) a Mquina Virtual Java. Como saber se eu tenho a Mquina Virtual Java instalada ?

    comando :

    Feito isso podemos ver a seguir :

  • 18

    Prompt de comando do Windows

    Experimente agora digitar o seguinte comando abaixo:

    java version

    Se mostrar a seguinte mensagem a seguir :

    Mquina Virtual Java instalada no computador

  • 19

    Significa que voc tem a Mquina Virtual Java em seu computador, PORM, na verso do Android Studio utilizada nesta apostila (verso 1.1.0) ser preciso que sua Mquina Virtual Java seja mais atualizada (como o do

    Virtual Java. Agora, se ao digitar o comando solicitado aparecer :

    Sua Mquina Virtual Java no se encontra instalada

    Significa que voc precisa realizar o download da Mquina Virtual Java, pois a mesma no se encontra instalada no computador. Para fazer o download da Mquina Virtual Java basta abrir o seguinte link em seguida : http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html?ssSourceSiteId=otnpt Feito isso dever se abrir a seguinte pgina em seguida:

  • 20

    Pgina de download do Java 7

    Procure pela verso mais recente do Java 7 (bastando rolar a pgina at embaixo). Feito isso aceite os termos de contrato e realize o download do arquivo de instalao, conforme mostrado em seguida:2.2.1) A Mquina Virtual Java

  • 21

    Baixando a Mquina Virtual Java

    A instalao da Mquina Virtual Java bem simples, basta ir seguindo toda a orientao exibida durante a instalao (p 2.3.2) O Android SDK Depois de instalado a Mquina Virtual em seu computador, vamos baixar e configurar agora o Android SDK que iremos utilizar junto com o Android Studio. Como falei, o Android SDK que j vem configAndroid Studio vai requerer muito de sua mquina (e possivelmente ir

    visitar o seguinte link :

    https://developer.android.com/sdk/index.html?hl=i

    Aceitando os termos da licena.

    Baixando a Mquina Virtual Java

  • 22

    No link apresentado role a pgina abaixo e procure a

    Seo SDK Tools Only

    verso superior serve). Basta clicar no -para abrir a seguinte caixa de dilogo em seguida :

  • 23

    Janela de Termos e Condies

    2-ser exibida a seguinte caixa de dilogo em seguida :

    Caixa de dilogo de download do Android SDK

  • 24

    Aps efetuar o download do Android SDK, vamos executar o seu instalador. Feito veremos a seguinte tela em seguida :

    Instalao do Android SDK

    Ao Virtual Java instalada em seu computador (como pr-requisito), conforme podemos ver na figura seguinte :

    OBS : Caso voc queira utilizar a mesma verso do Android SDK que est sendo utilizada aqui na obra, segue abaixo o link para download :

    http://dl.google.com/android/installer_r24.1.2-windows.exe

  • 25

    Instalao do Android SDK

    etapa seguinte questionado para quais usurios ser destinado o acesso ao Android SDK. Nessa opo a escolha fica por sua conta.

    Instalao do Android SDK

  • 26

    Clicando em podemos escolher o local onde a ferramenta ser instalada, conforme mostra a figura seguinte :

    Instalao do Android SDK

    Bom, nesta etapa iremos definir COMO PADRO \android_sdk\conforme podemos ver em seguida :

    Mudando o diretrio de instalao

  • 27

    N prxima etapa definimos o nome da pasta que ser exibida no menu iniciar que servir como atalho para iniciarmos as ferramentas oferecidas pelo Android SDK. Aqui no precisaremos modificar nada, deixe como est.

    Instalao do Android SDK

    para iniciarmos a instalao, conforme mostra a

    prxima figura :

  • 28

    Instalao do Android SDK

    mostra a prxima figura :

    Instalao do Android SDK

  • 29

    Finalizando a instalao do Android SDK

    Aps a seguinte caixa de dilogo do

  • 30

    Atravs do Android SDK iremos baixar e configurar todos os recursos necessrios que sero utilizados durante o desenvolvimento das nossas aplicaes para Android no Android Studio. Aqui para testarmos e executarmos as nossa aplicaes em Android faremos uso de um emulador que ir simular um dispositivo com o sistema Android. No momento do desenvolvimento deste material, a verso oferecida do sistema Android er a verso 5.1 (Lollipop). Essa verso ainda no ganhou popularidade, logo, iremos utilizar a verso 4.0.3 (Ice cream Sandwish), sendo esta a verso mais utilizada pelo mundo no momento em dispositivos Android.

  • 31

    Vamos no Android SDK todas as opes marcadas por padro pela ferramenta e marcar as opes a seguir :

    Android SDK Platform-tools (marcar a verso mais atual)

    Android SDK Build-tools (marcar a verso mais atualizada)

  • 32

    Packageprxima figura :

  • 33

    Feito isso ser aberta a seguinte caixa de dilogo a seguir:

    Caixa de dilogo Choose Packages to Install

    (conforme destacado acima). Para solucionarmos isso b

  • 34

    Feito isso teremos o seguinte resultado :

    Caixa de dilogo Choose Packages to Install

    exibida a seguinte caixa de dilogo a seguir :

  • 35

    Instalao dos pacotes selecionados

    Aguarde a instalao e configurao de todos os pacotes atravs do Android SDK Manager. Depois disso, podemos fechar o Android SDK Manager. 2.3.3) O Android Studio Agora para finalizar, vamos baixar e configurar o Android Studio. O download encontra-se na mesma pgina onde baixamos o Android SDK (https://developer.android.com/sdk/index.html?hl=i)

  • 36

    Agora vamos instalar a verso do Android Studio sem o SDK incluso (pois j baixamos ele por fora e configuramos), clicando no link indicado a seguir :

    Selecionando a verso do Android Studio sem o SDK incluso

  • 37

    Feito isso ir se abrir a caixa de dilogo de termos e condies (como j vimos

    Feito isso ir se abrir a caixa de dilogo abaixo :

    Caixa de dilogo Download do Android Studio

    Aps efetuar o download do Android Studio vamos executar o seu arquivo de instalao. Feito isso ser aberta a seguinte caixa de dilogo a seguir :

    OBS : Caso voc queira utilizar a mesma verso do Android Studio que est sendo utilizado neste material, segue abaixo o link para download : https://dl.google.com/dl/android/studio/install/1.1.0/android-studio-ide-

    135.1740770-windows.exe

  • 38

    Instalao do Android Studio

    Vamos Feito isso ser aberta a seguinte caixa de dilogo a seguir :

    Instalao do Android Studio

  • 39

    Por esto selecionadas. Vamos desmarcar todas as duas opes, conforme mostra a figura seguinte :

    Desmarcando as duas opes acima

    aberta a seguinte caixa de dilogo a seguir :

    Possivelmente essa opo NO DEVE TER APARECIDO em seu computador. Calma, est tudo bem. Essa opo s exibida dependendo da configurao de seu PC. Essa opo permite o recurso de simulao de

  • 40

    Instalao do Android Studio

    Vamos deix

    Instalao do Android Studio

  • 41

    Na Android Studio em nosso computador. Vejamos o resultado na figura seguinte :

    Instalando o Android Studio

    Aguarde a instalao se concluda, conforme podemos ver abaixo:

    Instalao concluda

  • 42

    iniciarmos a

    Instalao do Android Studio concluda

    Aabaixo, do Android Studio :

    Caixa de dilogo Complete Installation

  • 43

    Nessa caixa de dilgo perguntado se voc gostaria de importar os projetos desenvolvidos em uma verso anterior do Android Studio. Supondo que estou instalando o Android Studio pela primeira vez, vamos deixar marcada a segunda opo , conforme mostra a figura abaixo :

    Deixando marcada a segunda opo

    Vconforme podemos ver na figura seguinte :

  • 44

    Logo em seguida dever ser mostrada a seguinte caixa de dilogo a seguir, solicitando o download do Android SDK atravs do Android Studio :

    Caixa de dilogo Android Studio Wizard

    Bom, como j instalamos o Android SDK, no ser preciso realizar nenhum download em seguida ser mostrada a seguinte mensagem :

    Caixa de dilogo

  • 45

    Na caixa de dilogo que exibida vamos desmarcar a primeira opo para -

    Caixa de dilogo

    Feito Em seguida ser exibida a seguinte caixa de dilogo a seguir :

    Caixa de dilogo Android Setup Wizard

  • 46

    A primeira coisa que iremos fazer agora, antes de criarmos qualquer projeto, configurar o Android SDK para atuar em conjunto com o Android Studio. Para

    Na

    Project Defaults

    Feito isso, vamos selecionar agora a opo

    Project Structure

  • 47

    Feito isso ir se abrir a seguinte caixa de dilgo a seguir :

    Caixa de dilogo Project Structure

    Nesta tela iremos definir o diretrio onde ns instalamos o nosso Android SDK.

    seguir :

  • 48

    Feito isso ser aberta a seguinte caixa de dilogo a seguir :

    Caixa de dilogo Choose Android SDK Location

    Se separadamente no diretrio

    \android-

    Apontando para o diretrio do Android SDK

  • 49

    Depois de apontar para o diretrio do Android SDK, podemos clicar no boto

    Diretrio do SDK definido

    Na confirmarmos o diretrio do Android SDK. Depois disso, feche o Android Studio.

  • 50

    Capitulo 3 Comeando a programar no Android

    epois de tudo configurado e instalado, conforme foi mostrado no captulo anterior, vamos a partir de agora comear a desenvolver nossas aplicaes para a plataforma Android usando o Android Studio.

    Vamos primeiramente abrir e executar o nosso Android Studio . Quando a ferramenta executada pela primeira vez e nenhum projeto anterior criado nele, exibida a seguinte tela abaixo:

    Caixa de dilogo Quick Start

    Para

    D

  • 51

    Criando um novo projeto

    Feito isso ser aberta a seguinte caixa de dilogo , conforme mostra a prxima figura:

    Criando um novo projeto no Android Studio

    Na caixa de dilogo acima informarmos o nome da nossa aplicao (Application Name), o nome da empresa (Company Domain) e o local onde o mesmo ser salvo (Project location).

  • 52

    (expresso como nome de pacote Java). Agora

    escolha, PORM, o diretrio (caminho) que voc escolher no dever conter espaos em branco, fica a dica . Vejamos como ficou na figura abaixo :

    Criando um novo projeto no Android Studio

    Observe que um dos campos, que ainda no citei acima , preenchido

    . Vejamos abaixo :

  • 53

    Depois de preencher as informaes acima necessrias para continuarmos. Feito isso ser exibida a seguinte tela abaixo:

    Criando um novo projeto no Android Studio

    No formulrio acima especificamos para quais dispositivos iremos desenvolver as nossas aplicaes. Nesta apostila estaremos desenvolvendo aplicaes para Smartphones e Tablets Android em geral, logo, deixaremos a opo

    para sistemas Android cuja verso seja 5.x, o Lollipop).

    instalada para desenvolvimento das aplicaes, que neste caso a verso 4.0.3 que instalamos atravs do Android SDK. Deixaremos esta opo selecionada (at porque tambm s existe essa opo). Na prxima tela

  • 54

    Criando uma nova Activity

    , que representa uma

    aplicao, considedefinir uma atividade que vai representar a nossa aplicao Android. Para isso vamos criar uma nova atividade Activity), conforme a opo selecionada na figura acima.

    surgir a seguinte tela abaixo :

  • 55

    Informaes da Activity

    Na seo acima definimos o nome da nossa atividade (Activity Name) assim como o nome do arquivo XML que vai representar a tela da nossa aplicao (Layout Name), o ttulo que ser exibido na aplicao (Title) e o nome do arquivo que ir gerenciar os itens de menus a serem exibidos na aplicao (Menu Resource Name). Por padro , e o nome do arquivo d i Vamos alterar as informaes conforme os dados abaixo :

    Activity Name : HelloActivity

    Layout Name : activity_hello

    Title : Hello Android

    Menu Resource Name : menu_hello

    Vamos conferir como ficou na figura seguinte :

  • 56

    Informaes da Activity

    Por padro, como na primeira seo, quando mudamos o contedo do campo alterado automaticamente. Caso

    deseje voc poder escolher outros nomes para o campo alterado ar o nome da atividade.

    Finish nosso projeto possa ser gerado. O

    resultado voc confere na figura seguinte:

  • 57

    Projeto criado

    Se por caso for exibido a seguinte mensagem abaixo :

    Mensaegem de erro

    Feche esta caixa de dilogo e prossiga para a prxima etapa.

  • 58

    Conhecendo a estrutura geral de um projeto no Android Studio A primeira coisa que visualizamos que nos chama ateno a tela do

    ura seguinte:

    Visualizao da tela do dispositivo

    Se observamos a figura anterior, ao lado da tela do dispositivo temos uma paleta de componentes disponveis que podemos utilizar para construir as nossas aplicaes. Explicarei mais em detalhes no prximo captulo. Se visualizarmos Project

    appvrios subdiretrios , que por sua vez, possui seus respectivos arquivos, conforme demonstra a figura seguinte:

  • 59

    Visualizao dos diretrios do projeto

    Irei comentar agora toda a estrutura de um projeto Android. Ele composto por vrias pastas e arquivos, cada um com uma finalidade em especifico.

    app application) Vamos comear app application). Dentro desse diretrio temos todos os arquivos principais de nossa aplicao,

    , com o seguinte cdigo abaixo :

  • 60

    Android, atravs dele que

    definimos todas as permisses e configuraes primordiais de nossa aplicao para que a mesma seja executada (no iremos fazer nenhuma modificao nesse arquivo).

    parte da nossa aplicao. Observe que dentro da nossa pasta existem dois

    voltado para testes, onde dentro dele existe uma classe chamada , com o seguinte contedo abaixo :

    Viso geral

  • 61

    classe principal do programa, que atravs dela que definimos todos os aes da nossa aplicao :

    O arquivo aberto acima (HelloActivity.java) possui o seguinte contedo: package android.usuario.helloandroid; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class HelloActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setC ontentView(R.layout. activity_hello ); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is //present. getMenuInflater().inflate(R.menu. menu_hello , m enu); return true ; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId();

  • 62

    //noinspection SimplifiableIfStatement if (id == R.id. action_settings ) { return true ; } return super .onOptionsItemSelecte d(item); } }

    Diferentemente das aplicaes comuns em Java (J2SE), toda classe que representa uma aplicao Android deve ser derivada da classe Activity (atividade), conforme voc pode ver atravs do seguinte trecho de cdigo: public class Hello Activity extends Activity { :

    possui como mtodo principal o onCreate. A primeira

    linha de cdigo presente neste mtodo faz chamada ao mtodo onCreate da classe base (a classe Activity), conforme podemos conferir abaixo: super .onCreate(savedInstanceState);

    Logo aps esse mtodo vem o mtodo setContentView, responsvel por exibir a tela da minha aplicao baseado nos layouts xml". Por padro ele chama o

    activity_hello

    Dentro da estrutura de um projeto Android existe um diretrio chamado (resources), onde dentro dele colocamos todos os recursos que podemos utilizar em um programa Android (como imagens, sons, msicas e etc). Vamos conhecer os subdiretrios existentes dentro dessa pasta e a finalidade de cada um deles. O diretrio

    uma nica finalidade : armazenar imagens que sero visualizadas dentro de uma aplicao Android. Uma coisa que precisa ser reforada aqui que os arquivos de imagens presentes nessa pasta no podem estar escritos de qualquer forma. Os arquivos a serem copiados dentro desse diretrio devem

  • 63

    O s os arquivos referentes as telas de uma

    aqueles que conhecem a programao de HTML com JavaScript para a construo de pginas Web, no Android similar, a combinao de Java com XML para a construo de aplicativos Mobile.

    Um dos recursos que o Android permite que usemos na construo das telas

    bom programador que todos ns

    memria que vai armazenar um determinador valor, que ser nico at o fim da execuo do programa. Mas, o que isso tem a ver com as telas da nossa aplicao ? Vou explicar. Normalmente usamos constantes para armazenar valores fixos que, naturalmente, estaro presentes na maior parte do seu programa. muito comum criarmos um ttulo como nome de uma aplicao (como por exemplo :

    ar presente na maioria das telas (ou em todas) da sua aplicao. Imagine todas as telas da sua aplicao, seria um processo trabalhoso voc no acha

    que voc precise aplicao ? Voc ter novamente o mesmo trabalho para digitar em cada tela o nome da nova aplicao, sem dvida. Usando constantes, voc no ter esse trabalho. Dentro dessa pasta temos os seguintes arquivos: - : Esse arquivo guarda constantes relacionadas nossa aplicao em geral (como o nome da aplicao, o ttulo que vai aparecer na aplicao e etc.). - : Esse arquivo guarda constantes relacionadas as dimenses que podemos utilizar em nossa aplicao. - : Esse arquivo guarda constantes relacionadas estilos que podemos utilizar em nossa aplicao.

  • 64

    mipmap

    armazenar imagens) , porm, o mesmo foi destinado a armazenar nesta pasta somente imagens referentes ao cone da nossa aplicao Android, que possa se comportar em vrias resolues de tela.

    menu Nesse diretrio armazenado o arquivo responsvel por gerenciar e exibir os itens de menu em noss aplicao. Por padro o arquivo que contem os itens de menu possui a seguinte estrutura abaixo :

    Os itens de menu podem ser adicionados atravs do uso das tags especficas do XML para esse propsito (veremos isso mais adiante). Viso geral da ferramenta de desenvolvimento Acabamos de entender e conhecer acima toda a estrutura de diretrios de um projeto Android no Android Studio. Agora vamos dar uma viso geral na nossa ferramenta de desenvolvimento (IDE) para a plataforma Android.

  • 65

    Viso geral da ferramenta de desenvolvimento

    Vamos entender as numeraes indicadas na figura anterior : Na indicao (1) temos a paleta de componentes onde os mesmos esto separados por sees. As sees so : Widgets , Text Fields, Layouts , Containers, Date e Time , Expert e Custom (Componentes personalizados, normalmente criados pelo usurio e entre outros recursos). Na indicao (2) temos um preview de como ficar a interface da nossa aplicao quando a mesma for executada, nessa interface podemos arrastar e soltar os componentes (indicados por (1)) , construindo assim a nossa aplicao. Na indicao (3) temos as propriedades do componente (Properties). Quando selecionamos um componente, as suas propriedades so visualizadas e assim, conforme nossa necessidade, podemos alter-las.

    Component Tree seo podemos ver , de forma hierrquica, todos os componentes que esto presentes na tela da nossa aplicao Na indicao (5) podemos alternar entre o modo grfico ( Designa visualizao da tela da aplicao Text , onde visualizamos o

    (1)

    (2)

    (3)

    (4)

    (5)

    (6)

  • 66

    cdigo XML do arquivo, que corresponde a estrutura que forma a tela de nossa aplicao). Na indicao (6) podemos alterar os temas que podemos utilizar em nossa aplicao Android, orientao da tela do dispositivo (retrato ou paisagem), resoluo da tela do dispositivo e etc. A maioria das opes disponveis nessa seo s ter efeito em tempo de projeto. necessrio configurar as mesmas opes para que elas aconteam em tempo de execuo (quando voc executa o emulador ou dispositivo real), de acordo com a necessidade. Executando a nossa aplicao Agora que j tivemos uma viso geral da ferramenta de desenvolvimento e do projeto em Android (com toda a sua estrutura de diretrios e arquivos), podemos a partir de agora executarmos a nossa aplicao. Mas antes de executarmos a nossa aplicao, irei fazer alguns comentrios. Observe que quando criamos um projeto em Android, na tela do dispositivo j tem um componente TextView (situado na paleta de componentes , dentro da seo

    a nossa aplicao atravs do emulador, ela sair idntica como est sendo

    world ).

    Como fazer para executarmos a nossa aplicao ? Para executarmos a nossa

    SHIFT+F10) . Uma outra forma tambm clicando no boto pressente na barra de ferramentas :

    Feito isso ser aberta a seguinte caixa de dilogo em seguida :

  • 67

    Caixa de dilogo Choose device

    Para executarmos a nossa aplicao iremos fazer uso de um dispositivo virtual

    est criado (lembre-se : simplesmente baixamos atravs do Android SDK a imagem do sistema Android 4.0.3 ,mas, ainda no efetuamos nenhuma configurao e criao de dispositivo). Vamos nesse exato momento criar um dispositivo virtual que ir executar as nossas aplicaes Android. Para criarmos um dispositivo basta clicarmos no boto a figura a seguir :

    Criando um novo dispositivo

  • 68

    Feito isso ser aberta a seguinte caixa de dilogo abaixo :

    Android Virtual Device Manager

    Vamos seguinte tela :

  • 69

    Virtual Device Configuration

    Na mostrado na figura a seguir :

    Escolhendo a categoria

  • 70

    Como modelo de smatphone utilizado para executar as nossas aplicaes

    Selecionado o modelo

    conforme indica a prxima figura:

    Virtual Device Configuration

  • 71

    Muito bem, nesta seo escolhemos o sistema Android que iremos utilizar , que no caso ser o que baixamos atravs do Android SDK (a verso 4.0.3 Ice Cream Sandwish). Primeiramente, certifique-downloadable sy ESTA DESMARCADA, se estiver marcada, DESMARQUE (j que no iremos fazer nenhum donwload de imagem nenhuma) :

    Deixar esta opo DESMARCADA

    J que iremos fazer do sistema de imagem do Android 4.0.3 que baixamos, basta simplesmente clicarmos conforme mostra a figura a seguir :

    Virtual Device Configuration

    aspas, claro).

  • 72

    As demais configuraes vamos deix-las como est (default). Feito isso,

    gerado. Vejamos a figura abaixo :

    Dispositivo virtual criado

    Agora vamos fechar a janela da figura acima e em seguida na caixa de dilogo

    podemos ver na figura seguinte :

  • 73

    Selecionando o emulador

    Depois de selecionarmos o emulador a ser executado basta clicarmos no boto

    seguinte :

  • 74

    Emulador do Android em Execuo

    No incio da execuo do emulador mostra o ttulo Android, conforme voc v na figura acima. Depois vem um outro ttulo escrito um pouco maior e cinza , com uma animao. Esse processo normalmente demora em torno de 2 a 10 minutos (dependendo da sua mquina. recomendvel que voc tenha no mnimo 1GB de memria e um processador bem rpido para um bom desempenho da execuo) para a aplicao ser exibida, mesmo sendo essa aplicao algo muito simples. Passado o tempo que citei acima, ser mostrada a nossa aplicao em execuo, conforme podemos ver na figura seguinte:

  • 75

    Emulador do Android em Execuo

    Esse emulador j vem com uma srie de recursos como Navegador, Aplicaes de demonstrao, Mapas, Lista de contatos e etc. Se voc neste exato momento fechou o emulador aps a execuo da

    esperou muito tempo para ver essa aplicao em execuo, ao executar novamente a aplicao, possivelmente voc vai esperar o mesmo tempo. Ao executar pela primeira vez o emulador, e caso v executar outros programas, minimize o emulador ao invs de fechar, pois se voc esperou muito tempo para executar esse programa, com ele minimizado, ao executar outro programa, o Android Studio vai fazer uso do emulador j aberto em vez de abrir outro, com isso a aplicao levar em torno de 7 a 12 segundos em mdia para ser executada. Nunca esquea isso!

  • 76

    Bom, vamos fazer algumas modificaes em nossa aplicao. Minimize o emulador e vamos no projeto. Para comear vamos mudar o texto que est sendo exibido na tela. Selecione o texto (componente TextView), conforme demonstra a figura seguinte:

    Componente selecionado

    Se observarmos no lado direito, temos as propriedades do componente selecionado, conforme demonstra a figura seguinte:

    Propriedades do componente selecionado (TextView)

  • 77

    Para alterarmos o conte tex(conforme voc pode ver na figura acima). Se voc observar, o contedo que

    espere ai, o que significa esse expresso se o contedo que est sendo exibido uma frase ? Essa expresso significa que o contedo exibido na tela est dentro de uma

    Quando vimos a estrutura de um projeto Android, ns conferimos que dentro

    um arquivo que guardava constantes em geral certo ? Esse arquivo o

    exibido por esse componente na tela na verdade o contedo da constante

    demonstra a figura seguinte :

    Se observamos o contedo dele, temos disponveis 3 -

    Estcomo ficar conforme indica a figura seguinte :

  • 78

    Constante criada

    na guia de arquivos, conforme demonstra a figura seguinte:

    e em seguida clique no boto (...) que est

    aparecendo ao lado do contedo da propriedade. Veja abaixo :

    Alterando o contedo da propriedade

  • 79

    Feito isso ser aberta a seguinte caixa de dilogo abaixo :

    Caixa de dilogo Resources

    Observe que nessa caixa de dilogo temos todas as constantes que existem

    acabamos de criar. Vamos selecionar a nossa constante e em seguida clique

    Contedo modificado

  • 80

    Depois de alterar o contedo da TextView vamos executar novamente a aplicao, podemos fazer isso realizando o mesmo procedimento j explicado anteriormente. Possivelmente ao executar a aplicao novamente, dever ser exibida essa caixa de dilogo :

    Caixa de dilogo Choose Device

    Bom, vamos continuar a usar o emulador que j est aberto (identificado por

    - se

    Marcar esta opo

    para executarmos a nossa aplicao.

    Vejamos o resultado :

  • 81

    Aplicao em execuo

    Toda tela de uma aplicao uma estrutura de layout que permite organizar e distrbuir os componentes nela inseridos conforme a nossa necessidade. A estrutura de layout dessa verso do Android SDK, que e inserida por padro

    estrutura permite que os componentes nela inseridos possam ser organizados

    tela.

    A estrutura RelativeLayout

  • 82

    Vamos agora usando a paleta de componentes arrastar e soltar na tela do dispositivo o componente TextView

    Plain Acompanhe o processo abaixo :

    Adicionando o componente

    A estrutura RelativeLayout distribui os componentes de forma relativa, portando ao arrastar o componente solicitado verifique se as propriedades do

    alignParentLeft e bellow=textView, indicando que o componente estar alinhado a esquerda e abaixo do texto acima. Veja o resultado:

    Componente inserido na tela

    Nas verses mais antigas do Android SDK (usado muito em conjunto com a IDE Eclipse) a estrutura de layout padro da tela do dispositivo era a

    eles sejam distribudos tanto na horizontal (um ao lado do outro) quanto na vertical (um abaixo do outro).

    1) Clique e mantenha pressionado

    2) Arraste at aqui.

    3) Verifique as propriedades acima.

  • 83

    Quando alteramos o contedo (texto) do primeiro componente TextView

    mas, no somos obrigamos a us-a ser t Vamos digitar na

    material(sem aspas, lgico). Veja o resultado na figura seguinte:

    Contedo (texto) do componente alterado

    Vamos salvar as alteraes feitas no arquivo e em seguida executar a aplicao para conferir o resultado, como demonstra a figura seguinte:

  • 84

    Aplicao em execuo

    Conforme j havia mencionado, toda estrutura que constitui a tela de uma aplicao em Android nada mais do que um cdigo XML. Para visualizarmos o cdigo XML Text , situado ao l Design . Veja o seu cdigo abaixo:

  • 85

    E ai, est entendo aos poucos como se faz aplicaes Android ? Com certeza que sim! Como podemos ver no Android Studio ele j oferece um utilitrio que permite a criao de aplicaes de forma rpida, simplesmente arrastando e soltando os componentes. Isso acelera o processo de desenvolvimento de aplicaes.

  • 86

    Capitulo 4 Conhecendo as widgets do Android

    oda aplicao Android normalmente formado por um ou mais widgets, que so componentes grficos que constituem uma aplicao. A partir de agora iremos conhecer os widgets bsicos disponveis e oferecidos

    pela plataforma Android, para o desenvolvimento das aplicaes. De acordo com alguns widgets que fomos conhecendo, vamos desenvolver aplicaes que demonstrem o uso deles. No captulo anterior aprendemos a desenvolver nossa primeira aplicao em Android, algo absolutamente simples. Agora vamos conhecer melhor a paleta de componentes onde nela esto disponveis todos os widgets que podemos utilizar em uma aplicao (todos eles separados por categorias). 4.1) A paleta de componentes e suas widgets A ferramenta de desenvolvimento do Android SDK nos oferece uma gama de componentes (ou widgets, como preferirem) que podemos utilizar em uma aplicao a ser construda. Podemos conferir esses widgets na paleta mostrada pela figura seguinte:

    T

  • 87

    A paleta de componentes

    Conforme havia falado, os componentes esto distribudos nas mais diversas sees presentes na paleta de componentes. Vamos conhecer as sees desta paleta e os componentes nela presentes.

    Nesta seo esto disponveis os componentes mais bsicos que podem ser utilizados em uma aplicao Android, so eles: TextView : Componente onde nele podemos mostrar alguma informao, mensagem e etc Na nossa primeira aplicao tivemos a oportunidade de usarmos esse componente. Ele est disponvel em quatro estilos (Plain , Large, Medium e Small). Veja os cones desse componente na imagem seguinte:

  • 88

    cones do componente TextView (Verso normal, large, medium e small)

    Button : Componente que representa um boto onde podemos clicar nele e tambm atribuir aes que podem ser executadas caso isso acontea. Ele se encontra nas verses normal e small (pequena): Veja seu cone na paleta de componentes :

    cones do componente Button (Verso normal e small) CheckBox : Esse componente funciona como uma opo, onde nele podemos marc-lo e desmarc-lo. Veja o cone do componente abaixo:

    cone do componente CheckBox

    RadioButton : Esse componente funciona como uma opo, normalmente utilizado quando temos uma situao onde devemos escolher uma entre vrias opes (como numa prova de mltipla escolha). Veja o cone desse componente na paleta de componentes :

    cone do componente RadioButton

    Spinner : Esse componente nada mais do que uma caixa de combinao (tambm conhecido como Combo Box). Nesse componente podemos adicionar vrios itens que podero ser selecionados pelo usurio atravs do mesmo. Veja o cone desse componente na figura seguinte:

    cone do componente Spinner

    ProgressBar : Esse componente exibe uma barra de progresso na tela e est disponvel em 3 verses (normal e large (giratrias) e horizontal (barra)). Veja seus cones abaixo:

  • 89

    cone do componente ProgressBar

    RatingBar : Esse componente bastante utilizado para fazer sistemas de votaes e classificaes (aqueles sistemas em que voc define se uma coisa ruim, regular, boa, tima e etc). Veja o cone do componente na figura seguinte:

    cone do componente RatingBar

    ImageView : Esse componente simplesmente serve para exibir imagens que se colocam nele. Os formatos de imagens suportados por esse componente so : PNG, JPEG, BMP, GIF. Veja o cone desse componente em seguida:

    cone do componente ImageView

    ImageButton : Esse componente derivado do componente Button s que ao invs de exibir um texto dentro dele, exibe uma imagem. Os formatos de imagens suportados por esse componente so : PNG, JPEG, BMP, GIF. Veja o cone desse componente abaixo:

    cone do componente ImageButton

    Gallery : Esse componente funciona como uma galeria de imagens, onde nele podemos adicionar vrias imagens e ao mesmo, visualiza-las. Veja o cone desse componente abaixo:

    cone do componente Gallery

  • 90

    Nesta seo esto disponveis todos os componentes baseados em caixas de texto, e todos eles so baseados no componente EditText. Vamos ver alguns desses componentes abaixo: Plain Text: Esse o modelo de caixa padro que permite a digitao de qualquer tipo de caractere. Veja seu cone abaixo:

    cone do componente Plain Text

    Person Name: Esse modelo de caixa de texto permite a digitao de nomes pessoais (colocando a inicial de cada palavra em maisculo). Veja seu cone abaixo:

    cone do componente Plain Text

    Password: Esse modelo de caixa de texto permite a digitao de senhas e est disponvel tanto na verso alfanumrica quanto na numrica (Numeric). Veja os cones de componente abaixo:

    cones do componente Password (na verso normal e numrica) E-mail: Esse modelo de caixa de texto permite a digitao de e-mail. Veja o cone de componente abaixo:

    cone do componente E-mail

    Phone: Esse modelo de caixa de texto permite a digitao de telefones. Veja o cone de componente abaixo:

    cone do componente Phone

  • 91

    Multiline Text : Esse modelo de caixa de texto permite vrias linhas de texto, de acordo com a nossa necessidade. Veja o cone desse componente abaixo:

    cone do componente Multiline Text

    Nesta seo esto disponveis estruturas de layouts que podemos utilizar em nossas aplicaes para organizar a disponibilidade dos componentes dentro da tela, no dispositivo. Vejamos esses componentes: LinearLayout : Essa estrutura (conforme j havia mencionado) organiza os componentes dentro dela de forma que os mesmos sejam distribudos de forma horizontal (um ao lado do outro) ou vertical (um abaixo do outro), de acordo com a necessidade. Veja os cones desse componente:

    cones do componente LinearLayout (horizontal e vertical) RelativeLayout : Essa estrutura (conforme tambm j havia mencionado) organiza os componentes dentro dela de forma que os mesmos sejam distribudos livremente na tela (em qualquer ponto em que voc desejar, relativo a outros componentes que , possivelmente, estejam na tela). Veja os cones desse componente:

    cone do componente RelativeLayout TableLayout: Essa estrutura organiza os componentes dentro dela de forma como se estivessem em uma tabela (com o auxlio de um componente til, o TableRow, tambm presente nesta seo). Veja o cone desse componente abaixo:

  • 92

    cone do componente TableLayout

    Containers

    Nesta seo esto disponveis componentes que naturalmente funciona como complementos (compostos) para outros componentes. Vejamos os componentes dessa seo : ListView : Esse componente funciona como uma lista onde nele podemos adicionar itens e visualizar os mesmos (conhecido em algumas ferramentas de desenvolvimento como ListBox ). Vejamos o cone desse componente:

    cone do componente ListView

    RadioGroup : Esse componente nada mais do que um estrutura constituda (por padro) por trs RadioButtons , que podem ser distribudos de forma horizontal e vertical. Veja o cone desse componente na figura seguinte:

    cone do componente RadioGroup VideoView : Esse componente serve para reproduzir vdeos que queiramos visualizarmos atravs dele. Veja o cone desse componente abaixo:

    cone do componente VideoView 4.1.5 & Time Nesta seo esto disponveis os componentes que trabalham com data e hora. Vejamos os componentes abaixo:

  • 93

    TimePicker : Esse componente muito til , nele podemos estipular ou definir uma determinada hora, de acordo com a nossa necessidade. Veja o cone desse componente em seguida:

    cone do componente TimePicker DatePicker : Esse componente muito til , nele podemos estipular ou definir uma determinada data, de acordo com a nossa necessidade. Veja o cone desse componente abaixo:

    cone do componente DatePicker

    Chronometer : Esse componente nada mais do que um cronometro digital, que podemos utiliz-lo de acordo com a nossa necessidade . Ele derivado do componente TextView. Vejamos seu cone abaixo:

    cone do componente Chronometer

    AnalogClock : Esse componente nada mais do que um relgio analgico que mostra a hora do sistema. Vejamos seu cone abaixo:

    cone do componente AnalogClock DigitalClock : Esse componente nada mais do que um relgio digital (tambm derivado do TextView) que mostra a hora do sistema. Vejamos seu cone abaixo:

    cone do componente DigitalClock

  • 94

    4.1.6 Expert Nesta guia esto componentes de categorias miscelneas (mistas) , que envolvem manipulao de animaes e efeitos de transio e etc. Vamos ver alguns componentes ViewFlipper : Esse componente funciona como se fosse uma estrutura de layout para elementos, onde cada elemento exibido (e tambm ocultado) usando um efeito de transio. Vejamos seu cone abaixo:

    cone do componente ViewFlipper

    AutoCompleteTextView : Esse componente muito til quando queremos que durante a digitao de um contedo , o mesmo apresente sugestes de palavras (muito comum nas aplicaes de hoje em dia). Veja seu cone abaixo :

    cone do componente AutoCompleteTextView

    Neste captulo tivemos a oportunidade de conhecer os componentes bsicos e essenciais da plataforma Android. No prximo capitulo iremos construir diversas aplicaes que faam uso da maioria dos componentes descritos nessa seo.

  • 95

    Capitulo 5 Construindo nossas aplicaes no Android

    amos 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. 5.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 no Android Studio / Project . Confira na figura seguinte:

    New Project (pelo menu)

    Seguido os passos descritos acima, ir se abrir a caixa de dilogo abaixo:

    V

  • 96

    Criando o projeto Calculadora

    Agora vamos preencher os campos, conforme abaixo: Application Name : Calculadora Company Domain : app.usuario Project location : (Fica a sua escolha) Confira como ficou na figura seguinte:

  • 97

    Criando o projeto Calculadora Campos preenchidos

    ser aberta a tela de configuraes do projeto (que j esto previamente definidas.Nela no iremos alterar nada, simplesmente ). Na prxima etapa vamos escolher qual tipo de Activity iremos criar (por padro, o BlackActivity), conforme demonstra a prxima imagem:

  • 98

    Criando o projeto Calculadora Definindo a Activity

    Agora na prxima seo vamos preencher as informaes da Activity, conforme mostrado abaixo: Activity Name : CalculadoraActivity Layout Name : activity_calculadora Title : Calculadora Resource Menu Name : menu_calculadora Confira como ficou na figura seguinte:

  • 99

    Criando o projeto Calculadora Informaes preenchidas

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

    Antes de comearmos a desenvolver nosso projeto, vamos alterar a

    1) Clique aqui.

    2) Surgir este menu.

    3) Selecione esta opo.

  • 100

    A escolha da Skin mencionada pela fato de dimenses do emulador, porm , FIQUE A VONTADE para escolher a Skin que voc desejar. Na tela da aplicao selecione o componente TextView na tela (cuja frase est

    TextView

    Propriedade Valor

    text Digite o primeiro nmero

    Veja o resultado:

    Tela da aplicao em desenvolvimento

    Agora arraste e solte um componente Plain Text (EditText) presente dentro abaixo do ttulo. Veja como ficou em seguida :

  • 101

    serido

    Com o componente selecionado, vamos em suas propriedades para alterar os seguintes valores, como segue : EditText (Plan Text)

    Propriedade Valor

    layout:width match_parent

    id ednumero1

    osso componente, que no caso de nossa aplicao possuir (ocupar) a mesma largura da tela do

    identificado) na programao ao utilizarmos a linguagem Java. Porque alterar a sua ID ? Isso necessrio do cdigo Java, ento nada mais justo do que trabalhar com componentes cujos nomes estejam de forma clara e organizada. Agora arraste e solte um componente TextView abaixo da caixa de texto que inserimos, e em seguida altere as seguintes propriedades: TextView

    Propriedade Valor

    text Digite o segundo

    nmero

  • 102

    Logo aps , arraste e solte um componente Plain Text (EditText), situado na abaixo do componente acima inserido, e altere seu nome

    (conforme j foi mostrado). Veja o resultado:

    Tela da aplicao em desenvolvimento

    Agora vamos adicionar um componente Button abaixo da caixa de texto, que

    s os nmeros. Depois de adicionar, vamos alterar as suas propriedades, conforme mostrado abaixo: Button

    Propriedade Valor

    text Somar

    layout:width match_parent

    id btsomar

    Vejamos o resultado abaixo:

  • 103

    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). Para inserirmos o cdigo em nossa classe (o ar, basta seguir os procedimentos da figura a seguir :

    1) Clique aqui.

    2) Selecione esta opo.

  • 104

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

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

    import ... ;

    Nessa linha se voc observar (conforme demonstra a figura acima), existe um h mais de uma importao (processo

    cdigo). Para voc visualizar todos os pacotes utilizados basta clicar nesse sinal. Confira o resultado na prxima figura:

    Visualizando todos os pacotes

  • 105

    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:

    import android.widget.*; import android.view.*; import android.app.*;

    Agora no cdigo do nosso programa, antes (EU DISSE ANTES) da linha:

    @Override

    Digite:

    EditText ednumero1, ednumero2; Button btsomar ;

    Vejamos como ficou na figura seguinte :

    Atributos declarados

    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:

    setContentVie w(R.layout. activity_calculadora );

  • 106

    Digite as seguintes linhas de cdigo:

    ednumero1 = (EditText) findViewById(R.id. ednumero1); ednumero2 = (EditText) findViewById(R.id. ednumero2); btsomar = (Button) findViewById(R.id. btsomar );

    Veja como ficou na figura abaixo :

    Cdigo digitado

    Agora vou explicar as linhas de comando acima que adicionamos. A linha:

    ednumero1 = (EditText) findViewById(R.id. ednumero1); Faz referncia ao primeiro EditText, atravs do mtodo findViewById com o parmetro . Se lembra do nome da primeira EditText que est no cdigo XML? Ela se chama . Vamos entender. Observe que para fazer referncia ao EditText pelo mtodo findViewById eu passei o parmetro R.id.numero1 .

  • 107

    Na segunda instruo que digitamos, para fazer referncia segunda EditText, cujo nome ed , pelo mtodo findViewById, passei o parmetro R.id.numero2 .

    Como voc pode ver, estou fazendo uso da classe R (Android, onde todos os elementos e diretrios so estruturados em atributos da classe) 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

    (tocado na tela), 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 destacado em azul:

    protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_calculadora ); ednumero1 = (Edit Text) findViewById(R.id. ednumero1); ednumero2 = (EditText) findViewById(R.id. ednumero2); btsomar = (Button) findViewById(R.id. btsomar ); btsomar.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { 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 soma"); dialogo.setMessage("A soma " + soma); dialogo.setNeutralButton("OK", null ); dialogo.show(); } }); }

  • 108

    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, para ocultar ele s pressionar ESC. Irei descrever o cdigo do evento . O mtodo setOnClickLisneter serve para definir um evento de 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:

    double num1 = Double. par seDouble ( ednumero1.getText().toString());

  • 109

    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:

    AlertDialog.Builder dialogo = new AlertDialog.Builder(CalculadoraActivity. th is ); dialogo.setTitle( "Resultado soma" ); dialogo.setMessage( "A soma " + soma); dialogo.setNeutralButton( "OK", null ); dialogo.show();

    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(CalculadoraActivi ty. 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 );

  • 110

    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();

    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): Button

    Propriedade Valor

    Id btsubtrair

    text Subtrair

    layout:width match_parent

    Button

    Propriedade Valor

    id btmultiplicar

    text Multiplicar

    layout:width match_parent

    Button

    Propriedade Valor

    id btdividir

    text Dividir

    layout:width match_parent

    nossa aplicao:

  • 111

    Tela da aplicao da calculadora

    Conforme j havia falado, a tela da aplicao nada mais do que uma estrutura XML. Vamos ver agora a estrutura XML que existe por trs dessa tela que acompanhamos na figura acima:

  • 112

    android:layout_alignParentLeft ="true" />

    Agora retordeclarar mais trs atributos (variveis) que vo corresponder aos botes que representam as operaes restantes, conforme destaca a linha em azul:

  • 113

    :

    Button btsomar , btsubtrair,btmultiplicar, btdividir ;

    :

    Agora vamos atribuir para cada boto um evento de clique, fazendo com que eles efetuem a sua respectiva operao aritmtica. Vamos continuar a codificao do mtodo onCreate , digitando o seguinte cdigo destacado em azul em seguida: prote cted void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_calculadora ); ednumero1 = (EditText) findViewById(R.id. ednumero1); ednumero2 = (EditText) findVie wById(R.id. ednumero2); btsomar = (Button) findViewById(R.id. btsomar ); btsubtrair = (Button) findViewById(R.id. btsubtrair ); btmultiplicar=(Button)findViewById(R.id. btmultiplicar ); btdividir = (Butt on) findViewById(R.id. btdividir ); btsomar.setOnClickListener( new View.OnClickListener() { : }); btsubtrair.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { double num1 = Double. parseDouble (ednumero1.getText().toString()); double num2 = Double. parseDouble (ednumero2.getText().t oString()); 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 );

  • 114

    dialogo.show(); } }); btmultip licar.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(Calc uladoraActivity. this ); dialogo.setTitle("Resultado multiplicao"); dialogo.setMessage("A multiplicao " + soma); dialogo.setNeutralButton("OK", null ); dia logo.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; AlertD ialog.Builder dialogo = new AlertDialog.Builder(CalculadoraActivity. this ); dialogo.setTitle("Resultado diviso"); dialogo.setMessage("A diviso " + soma); dialogo.setNeutralButton("OK", null ); dialogo.show(); } }); }

  • 115

    Depois de escrever o cdigo acima, salve o arquivo e em seguida teste a aplicao. Veja o resultado na figura seguinte:

    Aplicao da calculadora em execuo

    5.2) Desenvolvendo uma aplicao simples de compras Agora para aprimorarmos o nosso conhecimento no desenvolvimento de aplicaes para Android, vamos criar um outro aplicativo que consiste em um sistema de compras, bem simples. Em nossa aplicao terei disponvel cinco produtos: Arroz (R$ 2,69) , Leite (R$ 5,00) , Carne (R$ 10,00), Feijo (R$ 2,30) e Refrigerante Coca-Cola (R$ 2,00). Nessa aplicao eu marco os itens que quero comprar e no final o sistema mostra o valor total das compras. Na aplicao que iremos desenvolver vamos utilizar os seguintes widgets : TextView, CheckBox e Button.

    Bom, vamos criar um novo projeto no Eclipse para Android chamado SistemaDeCompras . Siga os dados do projeto abaixo:

    Application Name : Sistema de Compras Company Domain : app.usuario

  • 116

    Project location : (Fica ao seu critrio onde salvar) Activity Name: ComprasActivity Layout Name : activity_compras Title : Sistema de Compras Resource Menu Name : menu_compras Depois de carregado e criado o projeto modifique o componente TextView situado na tela, de acordo com a tabela abaixo: TextView

    Propriedade Valor

    text Escolha seu produto

    Feito o que se foi pedido, adicione os seguintes componentes na sequncia: CheckBox

    Propriedade Valor

    text Arroz (R$ 2,69)

    id Chkarroz

    CheckBox

    Propriedade Valor

    text Leite (R$ 5,00)

    id Chkleite

    CheckBox

    Propriedade Valor

    text Carne (R$ 9,70)

    id Chkcarne

  • 117

    CheckBox

    Propriedade Valor

    text Feijo (R$ 2,30)

    id Chkfeijao

    Button

    Propriedade Valor

    text Total das compras

    id bttotal

    layout:width match_parent

    Ao final, o layout da nossa aplicao deve estar de acordo com a figura seguinte:

    Layout da tela da aplicao

  • 118

    Vamos ver agora a estrutura XML da tela desta aplicao:

  • 119

    Agora vamos modificar o a ComprasActivitydesse arquivo ser como o cdigo que exibido abaixo:

    package usuario.app.sistemadecompras; import android.os.Bundle; import android.app.Activity; import android.widget.*; import android.view.*; import android.app.*; public class ComprasActivity extends Activity { CheckBox chkarroz , chkleite , chkcarne , chkfeijao ; Button bttotal ; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_compras); chkarroz = (CheckBox) findViewById(R.id. chkarroz ); chkleite = (CheckBox) findViewById(R.id. chkleite ); chkcarne = (CheckBox) findViewById(R.id. chkcarne ); chkfeijao = (Check Box) findViewById(R.id. chkfeijao ); Button bttotal = (Button) findViewById(R.id. bttotal ); bttotal.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { double t otal = 0; if ( chkarroz .isChecked()) total += 2.69; if ( chkleite .isChecked()) total += 5.00; if ( chkcarne .isChecked()) total += 9.7; if ( chkfeijao .isChecked()) total += 2.30;

  • 120

    AlertDialog.Builder dialogo = new AlertDialog.Builder( ComprasActivity. this ); dialogo.setTitle( "Aviso" ); dialogo.setMessage ( "Valor total da compra :" + String. valueOf (total)); dialogo.setNeutralButton( "OK", null ); dialogo.show(); } }); } }

    Agora vou descrever o cdigo situado no mtodo onClick. Dentro do mtodo eu crio uma varivel chamada total que armazena o valor total da compra. Observe que eu tenho quatro estruturas onde cada uma verifica se um determinado item foi marcado, se foi, incrementa o valor do item na varivel total. No final exibido o valor total das compras na tela.

    Vamos roda nossa aplicao? O resultado voc confere na figura seguinte:

    Aplicao simples de compras em execuo

  • 121

    5.3) Desenvolvendo uma aplicao de clculo de salrio Agora vamos desenvolver uma nova aplicao que vai consistir em um sistema onde ns vamos digitar o salrio de um funcionrio permitindo escolher o seu percentual de aumento, que pode ser de 40% , 45% e 50%. Ao final de tudo, o sistema ir mostrar o salrio reajustado com o novo aumento. Para essa aplicao vamos utilizar os seguintes widgets : TextView, EditText, RadioButton e Button. Bom, vamos l! Crie um novo projeto Android com os seguintes dados abaixo: Application Name: Calculo de Salario Company Domain : app.usuario Project location : (Fica a sua escolha) Activity Name: SalarioActivity Layout Name : activity_salario Title : Clculo de Salrio Resource Menu Name : menu_salario

    Depois de carregado e criado o projeto modifique o componente TextView situado na tela, de acordo com a tabela abaixo: TextView

    Propriedade Valor

    text Digite seu salrio

    Em seguida, adicione os seguintes componentes na sequncia: EditText (Number Decimal)

    Propriedade Valor

    text

    id edsalario

    layout:width match_parent

  • 122

    TextView

    Propriedade Valor

    text Qual o seu percentual ?

    Seguindo os passos acima ate aqui, a aplicao deve estar de acordo com o d figura abaixo:

    Tela de layout da aplicao Clculo de salrio

    Bom, agora vamos adicionar um componente, ou melhor, uma estrutura que ser responsvel por agrupar as RadioButtons dentro dela, que se chama RadioGroup (Para mais informaes veja o Captulo 4). Clique e arraste o componente abaixo do ultimo widget adicionado. O resultado voc confere na figura abaixo:

  • 123

    Estrutura RadioGroup inserida

    Com o RadioGroup selecionado, modifique as propriedades abaixo: RadioGroup

    Propriedade Valor

    layout:width match_parent

    id rgopcoes

    Observe que o RadioGroup EST VAZIO. Vamos arrastar para dentro dele trs elementos, cada um deles do tipo RadioButton e identificados por um nome. Vamos arrastar o primeiro RadioButton para dentro do componente RadioGroup. Vejamos o resultado :

  • 124

    Agora vamos alterar as seguintes propriedades do RadioButton, conforme mostra a tabela : RadioButton

    Propriedade Valor

    text 40%

    id rb40

    Agora vamos arrastar mais dois componentes do tipo RadioButton para dentro do RadioGroup, e em seguida modifique as suas propriedades conforme mostra a tabela :

    RadioButton

    Propriedade Valor

    text 45%

    id rb45

    RadioButton

    Propriedade Valor

    text 50%

    id rb50

    Agora vamos selecionar novamente o componente RadioGroup para alterarmos a seguinte propriedade em seguida :

    RadioGroup

    Propriedade Valor

    layout:height wrap_content

  • 125

    Vejamos o resultado:

    Tela da aplicao em construo

    Agora, vamos adicionar uma Button, simplesmente clicando e arrastando o componente na tela. Agora um detalhe, para colocar esse componente na tela do dispositivo, mas, FORA da rea do RadioGroup (e abaixo do mesmo).

    Depois de colocar o Button, modifique as propriedades abaixo:

    Propriedade Valor

    text Calcular novo salrio

    id btcalcular

    layout:width match_parent

    Depois de inserir todos os componentes citados, o layout da aplicao deve ficar de acordo com a figura em seguida:

  • 126

    Layout da tela da aplicao

    Vamos analisar agora parte de um trecho de cdigo produzido. Como havia falado acima, as RadioButtons precisam ficar dentro de uma estrutura chamada RadioGroup certo ? Vamos ver como isso estruturado dentro de um cdigo XML, como voc confere abaixo:

  • 127

    Observe acima que logo aps a definio da estrutura RadioGroup, existe dentro dela as RadioButtons, que sero utilizadas na aplicao. Agora confira a estrutura XML da tela da aplicao em desenvolvimento:

  • 128

    android:id ="@+id/rb45" />

    SalarioActivity vamos colocar o seguinte cdigo abaixo:

    package usuario.app.calculodesalario; import android.os.Bundle; import android.app.Activity ; import android.widget.*; import android.view.*; import android.app.*; public class SalarioActivity extends Activity { RadioGroup rgopcoes ; Button btcalcular ; EditText edsalario ; @Override protected void onCreate(Bundle savedInstan ceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_salario); edsalario = (EditText) findViewById(R.id.edsalario); rgopcoes = (RadioGroup) findViewById(R.id.rgopcoes); btcalcular = (B utton) findViewById(R.id.btcalcular); btcalcular .setOnClickListener( new View.OnClickListener() {

  • 129

    @Override public void onClick(View arg0) { double salario = Double. parseDouble ( edsalario .g etText().toString()); int op = rgopcoes .getCheckedRadioButtonId(); double novo_salario = 0; if (op == R.id.rb40) novo_salario = salario + (salario * 0.4); else if (op == R.id.rb45) novo_salario = salario + (salario * 0.45); else novo_salario = salario + (salario * 0.5); AlertDialog.Builder dialogo = new AlertDialog.Builder(SalarioActi vity. this ); dialogo.setTitle( "Novo salrio" ); dialogo.setMessage( "Seu novo salrio : R$" + String. valueOf (novo_salario)); dialogo.setNeutralButton( "OK", null ); di alogo.show(); } }); } }

    Vamos explicao de alguns cdigos interessantes. Dentro do mtodo onClick, eu realizo o clculo do novo salrio do funcionrio. Os primeiros cdigos do evento so similares de programas anteriores que j foram devidamente explicados. A linha:

    int op = rgopcoes .getCheckedRadioButtonId();

    Cria uma varivel op e retorna para ela o Id da opo selecionada, ou seja, qual RadioButton foi selecionada.

    Agora na condio:

    if (op == R.id.rb40)

  • 130

    Verifico se a opo de 40% foi selecionada, se foi selecionada, realiza o clculo do salrio com o reajuste de 40%. A mesma explicao e vlida para o clculo dos outros reajustes. Agora vamos executar a nossa aplicao. O resultado voc v na figura seguinte:

    Aplicao de clculo de salrio em execuo

    5.4) Desenvolvendo uma aplicao de lista de contatos Agora vamos fazer uma nova aplicao em Android que consiste em uma aplicao de lista de contatos. Para essa aplicao iremos utilizar um componente chamado ListView , que seja bastante til para esse tipo de situao (quando queremos exibir itens). Toda vez que clicarmos (ou melhor

    do contato selecionado. Vamos criar agora um novo projeto no Android Studio, conforme os dados em seguida:

  • 131

    Application Name: Lista de Contatos Company Domain : app.usuario Project location : (Fica a sua escolha) Activity Name: ListaContatosActivity Layout Name : activity_lista_contatos Title : Lista de Contatos Resource Menu Name : menu_lista_contatos Aps o projeto ser carregado selecione o componente TextView, e em seguida

    t Escolha um contato: . Em seguida vamos adicionar o componente ListView (que se encontra na

    Containers ndo o que foi se pedido, a tela da aplicao ficar de acordo com a seguinte figura:

    Layout da tela da aplicao em desenvolvimento

    Agora vamos criar um objeto (String Array) que vai armazenar os contatos que sero exibidos

  • 132

    . Os contatos que estaro nessa lista so : "Aline","Lucas","Rafael","Gabriela" e "Silvana". Depois de criar os contatos, selecione o objeto ListView que voc adicionou e altere as seguintes propriedades. ListView

    Propriedade Valor

    id lista_contatos

    entries @array/contatos

    Agora vamos visualizar a estrutura XML do arquivo que forma a tela da aplicao acima:

    para colocar o seguinte

    cdigo abaixo: package usuario.app.listadecontatos; import android.os.Bundle; import android.widget.*; import android.view.*; import android.app.*; public class ListaContatosActivity extends Activity {

  • 133

    ListView lista_contatos ; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_lista_contatos); lista_contatos = (ListView) findViewById(R.id.lista_contatos); lista_contatos .setOnItemClickListener ( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { String nome = ((TextView) view).getText().toStrin g(); AlertDialog.Builder dialogo = new AlertDialog.Builder( ListaContatosActivity. this ); dialogo.setTitle( "Contato" ); dialogo.setMessage( "Contato selecionado: " + nome); dialogo.setNeutralButton( "OK", null ); dialogo.show(); } }); } }

    Como havia falado (e tambm como vocs podem conferir no cdigo acima), quando se clica em um item, o sistema mostra uma mensagem do item selecionado (no caso, o nome contato selecionado). Isso conseguido fazendo uso da interface OnItemClickListener, como mostra a instruo abaixo:

    lista_contatos .setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { String nome = ((TextView) view).getText().toString(); AlertDialog.Builder dialogo = new AlertDialog.Bu ilder( ListaContatosActivity. this ); dialogo.setTitle( "Contato" ); dialogo.setMessage( "Contato selecionado: " + nome); dialogo.setNeutralButton( "OK", null ); dialog o.show(); } });

    Vamos analisar alguns trechos do cdigo. A linha de comando:

    String nome = ((TextView) view).getText().toString();

  • 134

    Guarda na varivel o contedo retornado pelo objeto (que contm o contato selecionado). Como o contedo precisa ser retornado para a varivel que do tipo String, foi preciso converte-lo em TextView para que o contedo fosse retornado em uma String (atravs do mto