Criando Um Projeto Android

download Criando Um Projeto Android

of 159

Transcript of Criando Um Projeto Android

  • 7/27/2019 Criando Um Projeto Android

    1/159

    Criando um projeto AndroidANTERIORPRXIMA

    ESTA LIO ENSINA VOC A1. Criar um projeto com Eclipse

    2. Criar um projeto com as ferramentas de linha de comando

    VOC TAMBM DEVE LER Instalando o SDK

    Gerenciando Projetos

    Um projeto Android contm todos os arquivos que compem o cdigo fonte para o seu aplicativo Android. Asferramentas do SDK do Android se torna mais fcil para iniciar um novo projeto Android com um conjunto dediretrios de projeto padro e arquivos.

    Esta lio mostra como criar um novo projeto ou usando Eclipse (com o plugin ADT) ou usando as ferramentasdo SDK a partir de uma linha de comando.

    Nota: Voc j deve ter o Android SDK instalado, e se voc estiver usando o Eclipse, voc tambm deve teroplug-in ADTinstalado (verso 21.0.0 ou superior). Se voc no tiver esses, siga o guia deinstalao do SDKAndroidantes de comear esta lio.

    Criar um projeto com Eclipse

    1. Clique em Novo na barra de ferramentas.

    2. Na janela que aparece, abra o Android pasta, selecione Projeto Aplicativo para Android e cliqueem Prxima .

    Figura 1. assistente do projeto New Android App no Eclipse.

    3. Preencha o formulrio que aparece:

    http://developer.android.com/training/basics/firstapp/index.htmlhttp://developer.android.com/training/basics/firstapp/index.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.html#Eclipsehttp://developer.android.com/training/basics/firstapp/creating-project.html#Eclipsehttp://developer.android.com/training/basics/firstapp/creating-project.html#CommandLinehttp://developer.android.com/training/basics/firstapp/creating-project.html#CommandLinehttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/tools/sdk/eclipse-adt.htmlhttp://developer.android.com/tools/sdk/eclipse-adt.htmlhttp://developer.android.com/tools/sdk/eclipse-adt.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/tools/sdk/eclipse-adt.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.html#CommandLinehttp://developer.android.com/training/basics/firstapp/creating-project.html#Eclipsehttp://developer.android.com/training/basics/firstapp/index.htmlhttp://developer.android.com/training/basics/firstapp/index.html
  • 7/27/2019 Criando Um Projeto Android

    2/159

    o Nome do aplicativo o nome do aplicativo que aparece para os usurios. Para este projeto, usar "MyFirst App".

    o Nome do Projeto o nome do diretrio do projeto eo nome visvel no Eclipse.

    o Nome do pacote o namespace do pacote para seu aplicativo (seguindo as mesmas regras que ospacotes na linguagem de programao Java). Seu nome de pacote deve ser nico em todos os pacotesinstalados no sistema Android. Por esta razo, geralmente melhor se voc usar um nome que comeacom o nome de domnio reverso da sua organizao ou entidade editora.Para este projeto, voc pode

    usar algo como "com.example.myfirstapp". No entanto, voc no pode publicar seu aplicativo no GooglePlay usando o "com.example" namespace.

    o Mnimo Necessrio SDK a verso menor do Android que o aplicativo suporta, indicado usando onvelAPI. Para suportar tantos dispositivos quanto possvel, voc deve definir isso para o menor versodisponvel que permite que seu aplicativo para fornecer seu conjunto de recursos do ncleo. Se algumacaracterstica de sua aplicao s possvel em verses mais recentes do Android e no crtico para oconjunto de recursos do ncleo do aplicativo, voc pode ativar o recurso apenas quando executado nasverses que suportam (como discutido naCoadjuvante diferentes verses da plataforma). Deixe esteconjunto para o valor padro para este projeto.

    o Alvo SDK indica a verso mais recente do Android (tambm usando onvel API) com o qual voc j

    testou com a sua aplicao.

    medida que novas verses do Android se tornam disponveis, voc deve testar o seu aplicativo na novaverso e atualizar este valor para corresponder ao nvel API mais recente, a fim de tirar proveito dosnovos recursos da plataforma.

    o Com compilar a verso da plataforma com a qual voc ir compilar o seu aplicativo. Por padro, isso definido como a ltima verso do Android disponvel no seu SDK. (Deve ser o Android 4.1 ou superior, sevoc no tem essa verso disponvel, voc deve instalar um usando oGerenciador de SDK). Voc aindapode criar seu aplicativo para suportar as verses mais antigas, mas a definio da meta de construopara a verso mais recente permite ativar novos recursos e otimizar seu aplicativo para uma grandeexperincia de usurio nos dispositivos mais recentes.

    o Tema especifica o Android estilo UI para aplicar para o seu aplicativo. Voc pode deixar isso sozinho.

    Clique em Prxima .

    4. Na prxima tela para configurar o projeto, deixe as selees padro e clique em Avanar.

    5. A prxima tela pode ajudar a criar um cone do lanador para o seu aplicativo.

    Voc pode personalizar um cone de vrias maneiras ea ferramenta gera um cone para todas as densidadesde tela. Antes de publicar o aplicativo, voc deve ter certeza que seu cone atende s especificaesdefinidas noIconografiaguia de design.

    Clique em Prxima .

    6. Agora voc pode selecionar um modelo de atividade de que para comear a construir sua aplicao.Para este projeto, selecione BlankActivity e clique Prxima .

    7. Deixe todos os detalhes para a atividade em seu estado padro e clique em Finish .

    Seu projeto Android agora est configurado com alguns arquivos padro e voc est pronto para comear aconstruir o app. Continue para aprxima lio.

    Criar um projeto com as ferramentas de linha de comando

    Se voc no est usando o Eclipse IDE com o plugin ADT, voc pode ao invs criar seu projeto usando asferramentas do SDK a partir de uma linha de comando:

    1. Altere os diretrios em do o Android do SDK ferramentas / de caminho.

    http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/design/style/iconography.htmlhttp://developer.android.com/design/style/iconography.htmlhttp://developer.android.com/design/style/iconography.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/design/style/iconography.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevelshttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
  • 7/27/2019 Criando Um Projeto Android

    3/159

    2. Execute:

    alvos lista android

    Imprime uma lista das plataformas Android disponveis que voc baixou para o seu SDK. Encontrar aplataforma com a qual voc deseja compilar o seu aplicativo. Anote o ID de destino. Recomendamos quevoc escolha a verso mais alto possvel. Voc ainda pode criar seu aplicativo para suportar as verses mais

    antigas, mas a definio da meta de construo para a verso mais recente permite que voc otimize o seuaplicativo para os dispositivos mais recentes.

    Se voc no v todos os alvos indicados, voc precisa instalar alguns usando a ferramenta Android SDKManager. VejaAdicionando plataformas e pacotes.

    3. Execute:

    4. android projeto Criar - alvo - o nome MyFirstApp \

    5. - Caminho / MyFirstApp - MainActivity atividade \

    6. - Pacote com.example.myfirstapp

    Substitua com um ID da lista de alvos (a partir do passo anterior) e substituir com o local em que voc deseja salvar seus projetos Android.

    Seu projeto Android agora est configurado com vrias configuraes padro e voc est pronto para comeara construir o app. Continue para aprxima lio.

    Dica: Adicione as plataforma-tools / , bem como as ferramentas / diretrio de seu PATH varivel deambiente.

    Executando o seu AppANTERIORPRXIMA

    ESTA LIO ENSINA VOC A1. Executado em um dispositivo real

    2. Executar no Emulator

    VOC TAMBM DEVE LER Usando Dispositivos de Hardware

    Gerenciamento de dispositivos virtuais Gerenciando Projetos

    Se voc seguiu alio anteriorpara criar um projeto Android, que inclui um conjunto padro de arquivos deorigem "Hello World" que permitem que voc execute imediatamente o app.

    Como voc executar seu aplicativo depende de duas coisas: se voc tiver um dispositivo Android-powered reale se voc estiver usando o Eclipse. Esta lio mostra como instalar e executar o aplicativo em um dispositivoreal e no emulador Android, e em ambos os casos, tanto com as ferramentas de linha de comando Eclipse ou.

    Antes de executar o aplicativo, voc deve estar ciente de alguns diretrios e arquivos no projeto Android:

    AndroidManifest.xml Oarquivo de manifestodescreve as caractersticas fundamentais da aplicao e define cada um deseus componentes. Voc vai aprender sobre vrias declaraes nesse arquivo enquanto voc l maisaulas de treinamento.

    http://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/running-app.html#RealDevicehttp://developer.android.com/training/basics/firstapp/running-app.html#RealDevicehttp://developer.android.com/training/basics/firstapp/running-app.html#Emulatorhttp://developer.android.com/training/basics/firstapp/running-app.html#Emulatorhttp://developer.android.com/tools/device.htmlhttp://developer.android.com/tools/device.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/tools/projects/index.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/device.htmlhttp://developer.android.com/training/basics/firstapp/running-app.html#Emulatorhttp://developer.android.com/training/basics/firstapp/running-app.html#RealDevicehttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/sdk/installing/adding-packages.html
  • 7/27/2019 Criando Um Projeto Android

    4/159

    Um dos elementos mais importantes seu manifesto deve incluir aelemento. Isso declaraa compatibilidade do seu aplicativo com diferentes verses do Android usando oAndroid:minSdkVersioneandroid: targetSdkVersionatributos. Para o seu primeiro aplicativo, ele deveser parecido com isto:

    ...

    Voc deve sempre definir oandroid: targetSdkVersiono mais alto possvel e testar seu aplicativona verso plataforma correspondente. Para mais informaes, leiaApoiar diferentes verses daplataforma.

    src /Diretrio para as principais arquivos de origem do seu aplicativo. Por padro, ele incluiumaatividadede classe que executado quando o aplicativo iniciado usando o cone do aplicativo.

    res /

    Contm vrios sub-diretrios pararecursos de aplicativos. Aqui esto apenas alguns exemplos:

    drawable-hdpi /Diretrio para objetos drawable (como bitmaps) que so projetados para telas de alta densidade(hdpi). Outros diretrios drawable contm ativos projetadas para outras densidades de tela.

    layout /Diretrio para arquivos que definem interface de usurio do aplicativo.

    valores /

    Diretrio para outros arquivos XML que contm um conjunto de recursos, tais como cordas e definiesde cores.

    Quando voc compilar e executar o aplicativo Android padro, o padroActivityclasse inicia ecarrega um arquivo de layout que diz "Ol Mundo". O resultado no nada excitante, mas importante que voc entenda como executar seu aplicativo antes de voc comear adesenvolver.

    Executado em um dispositivo real

    Se voc tiver um dispositivo Android-powered real, aqui est como voc pode instalar e executaro aplicativo:

    1. Conecte o dispositivo ao computador de desenvolvimento com um cabo USB. Se voc estdesenvolvendo no Windows, pode ser necessrio instalar o driver USB apropriado para o seudispositivo. Para obter ajuda para a instalao dos drivers, consulte oDrivers USBOEMdocumento.

    2. Ativara depurao USB no seu dispositivo.

    o Na maioria dos dispositivos rodando Android 3.2 ou mais, voc pode encontrar a opo

    emConfiguraes> Aplicaes> Desenvolvimento .o No Android 4.0 e mais recentes, em Configuraes> Opes do desenvolvedor.

    Nota: No Android 4.2 e mais recentes, as opes do desenvolvedorest oculta porpadro. Para torn-lo disponvel, v para Configuraes> Sobre o telefone e

    http://developer.android.com/guide/topics/manifest/uses-sdk-element.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/guide/topics/resources/overview.htmlhttp://developer.android.com/guide/topics/resources/overview.htmlhttp://developer.android.com/guide/topics/resources/overview.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/tools/extras/oem-usb.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/guide/topics/resources/overview.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/training/basics/supporting-devices/platforms.htmlhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#targethttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html#minhttp://developer.android.com/guide/topics/manifest/uses-sdk-element.html
  • 7/27/2019 Criando Um Projeto Android

    5/159

    toque Construir nmero sete vezes. Retorne tela anterior para encontraropesdesenvolvedor.

    Para executar o aplicativo a partir de Eclipse:

    1. Abra um dos arquivos do seu projeto e clique em Executar na barra de ferramentas.

    2. No Executar como janela que aparece, selecione Aplicativo para Android e clique em OK .

    Eclipse instala o aplicativo em seu dispositivo conectado e comea-lo.

    Ou para executar o aplicativo a partir de uma linha de comando:

    1. Altere os diretrios para a raiz do seu projeto Android e executar:

    ant debug

    2. Certifique-se que o Android SDK platform-tools / diretrio est includo noseu PATH varivel de ambiente, em seguida, execute:

    adb install bin / MyFirstApp-debug.apk

    3. No seu dispositivo, localize MyFirstActivitye abri-lo.

    assim que voc compilar e executar o seu aplicativo Android em um dispositivo! Para iniciar odesenvolvimento, continue para aprxima lio.

    Executar no Emulator

    Se voc estiver usando Eclipse ou a linha de comando, para executar seu aplicativo noemulador, voc precisa primeiro criar umdispositivo virtual Android(AVD). Um AVD umaconfigurao do dispositivo para o emulador Android que permite modelar diferentes dispositivos.

    Figura 1.O Gerente de AVD mostrando alguns dispositivos virtuais.

    Para criar um AVD:

    1. Lanar o Android Virtual Device Manager:

    a. Em Eclipse, clique em Android Virtual Device Manager a partir da barra de ferramentas.

    http://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/tools/devices/index.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.html
  • 7/27/2019 Criando Um Projeto Android

    6/159

    b. A partir da linha de comando, altere os diretrios para / ferramentas / e

    executar:

    android avd

    2. No Gerenciador de dispositivos Android Virtualpainel, clique emNovo .

    3. Preencha os detalhes para o AVD. D-lhe um nome, um alvo plataforma, um tamanho de

    carto SD, e uma pele (HVGA o padro).4. Clique em Criar AVD .

    5. Selecione o novo AVD doAndroid Virtual Device Managere clique em Iniciar.

    6. Aps o emulador inicializado, desbloquear a tela do emulador.

    Para executar o aplicativo a partir de Eclipse:

    1. Abra um dos arquivos do seu projeto e clique em Executar na barra de ferramentas.

    2. No Executar como janela que aparece, selecione Aplicativo para Android e clique em OK .

    Eclipse instala o aplicativo no seu AVD e comea-lo.

    Ou para executar o aplicativo a partir da linha de comando:

    1. Altere os diretrios para a raiz do seu projeto Android e executar:

    ant debug

    2. Certifique-se que o Android SDK platform-tools / diretrio est includo noseu PATH varivel de ambiente, em seguida, execute:

    adb install bin / MyFirstApp-debug.apk

    3. No emulador, localize MyFirstActivitye abri-lo.

    assim que voc compilar e executar o seu aplicativo Android no emulador! Para iniciar odesenvolvimento, continue para aprxima lio.

    Construir uma interface simplesANTERIORPRXIMA

    ESTA LIO ENSINA VOC A1. Criar um layout Linear

    2. Adicionar um campo de texto

    3. Adicionar recursos de seqncia

    4. Adicionar um boto

    5. Faa a caixa de entrada Preencha a largura da tela

    VOC TAMBM DEVE LER Layouts

    A interface grfica do usurio para um aplicativo Android construdo usando uma hierarquiadeVereViewGroupobjetos.Visualizao deobjetos so geralmente widgets de interface do usurio,comobotesoucampos de textoeViewGroupobjetos so vista containers invisveis que definem como ospontos de vista de crianas so colocadas para fora, tais como em uma grade ou uma lista vertical.

    http://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.html#LinearLayouthttp://developer.android.com/training/basics/firstapp/building-ui.html#LinearLayouthttp://developer.android.com/training/basics/firstapp/building-ui.html#TextInputhttp://developer.android.com/training/basics/firstapp/building-ui.html#TextInputhttp://developer.android.com/training/basics/firstapp/building-ui.html#Stringshttp://developer.android.com/training/basics/firstapp/building-ui.html#Stringshttp://developer.android.com/training/basics/firstapp/building-ui.html#Buttonhttp://developer.android.com/training/basics/firstapp/building-ui.html#Buttonhttp://developer.android.com/training/basics/firstapp/building-ui.html#Weighthttp://developer.android.com/training/basics/firstapp/building-ui.html#Weighthttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/guide/topics/ui/controls/button.htmlhttp://developer.android.com/guide/topics/ui/controls/button.htmlhttp://developer.android.com/guide/topics/ui/controls/button.htmlhttp://developer.android.com/guide/topics/ui/controls/text.htmlhttp://developer.android.com/guide/topics/ui/controls/text.htmlhttp://developer.android.com/guide/topics/ui/controls/text.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/guide/topics/ui/controls/text.htmlhttp://developer.android.com/guide/topics/ui/controls/button.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.html#Weighthttp://developer.android.com/training/basics/firstapp/building-ui.html#Buttonhttp://developer.android.com/training/basics/firstapp/building-ui.html#Stringshttp://developer.android.com/training/basics/firstapp/building-ui.html#TextInputhttp://developer.android.com/training/basics/firstapp/building-ui.html#LinearLayouthttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/running-app.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.html
  • 7/27/2019 Criando Um Projeto Android

    7/159

    Android fornece um vocabulrio XML que corresponde s subclasses deVereViewGrouppara que vocpossa definir a sua UI em XML usando uma hierarquia de elementos de interface do usurio.

    Layouts alternativosDeclarando seu layout UI em XML em vez de cdigo em tempo de execuo til por vrias razes, mas especialmente importante para que voc possa criar diferentes layouts para diferentes tamanhos de tela. Porexemplo, voc pode criar duas verses de um layout e dizer ao sistema para usar um em telas "pequenas" e outranas telas "grandes". Para mais informaes, consulte a classe sobreApoiar diferentes dispositivos.

    Figura 1. Ilustrao de comoViewGroupobjetos formam ramos no layout e conter outrosVisualizaodeobjetos.

    Nesta lio, voc vai criar um layout em XML que inclui um campo de texto e um boto. Na aula seguinte, vocvai responder quando o boto pressionado, enviando o contedo do campo de texto para outra atividade.

    Criar um layout Linear

    Abra o activity_main.xml arquivo da res / layout / diretrio.

    Nota: Em Eclipse, quando voc abre um arquivo de layout, voc mostrado pela primeira vez o editor de layoutgrfico. Este um editor que ajuda a criar layouts usando ferramentas WYSIWYG. Para esta lio, voc vaitrabalhar diretamente com o XML, ento clique no activity_main.xmlguia na parte inferior da tela para abrir oeditor de XML.

    O modelo BlankActivity que voc escolheu quando criou este projeto inclui a activity_main.xml arquivo com

    umRelativeLayoutvista de raiz e umTextViewvista da criana.

    Primeiro, excluir oelemento e alterar aelementopara. Em seguida, adicione oandroid: orientaoatributo e defini-locomo "horizontal" . O resultado se parece com isso:

  • 7/27/2019 Criando Um Projeto Android

    8/159

    LinearLayout um grupo de ponto de vista (uma subclasse deViewGroup), que estabelece os pontos devista da criana em uma orientao vertical ou horizontal, conforme especificado peloAndroid:orientaode atributos. O filho de umLinearLayoutaparece na tela na ordem em que aparece no XML.

    Os outros dois atributos,Android: layout_widtheandroid: layout_height, so necessrios paratodas as vises, a fim de especificar o seu tamanho.

    Porque oLinearLayout a viso raiz no layout, ele deve preencher a rea de tela inteira que est disponvel

    para o aplicativo, definindo a largura ea altura de "match_parent" . Este valor diz que a viso deve ampliarsua largura ou altura para correspondera largura ou a altura da vista principal.

    Para mais informaes sobre propriedades de layout, consulte olayoutde guia.

    Adicionar um campo de texto

    Para criar um campo de texto editvel pelo usurio, adicionar umelemento dentro

    do.Como todaVerobjeto, voc deve definir certos atributos XML para especificar oEditTextpropriedades doobjeto. Aqui est como voc deve declar-lo dentro doelemento:

    Sobre objetos de recursoUm objeto de recurso simplesmente um nome inteiro nico que associado com um recurso de aplicativo, comoum bitmap, arquivo de layout, ou string.

    Cada recurso possui um objeto de recurso correspondente definido no do seu projeto gen / R.java arquivo.Vocpode usar os nomes de objeto noR classe para se referir aos seus recursos, como quando voc precisa especificarum valor de string para oandroid: dicaatributo. Voc tambm pode criar IDs de recursos arbitrrios que vocassocia com vista usando oandroid: idatributo, que permite fazer referncia a esse ponto de vista a partir de

    outro cdigo.

    As ferramentas do SDK gerar o R.javacada vez que voc compilar o seu aplicativo. Voc nunca deve modificar este

    arquivo manualmente.

    Para mais informaes, leia o manual dePrestao de Recursos.

    Sobre estes atributos:

    android: id

    Isto fornece um identificador exclusivo para a exibio, que pode ser usado para fazer referncia aoobjeto de seu cdigo do aplicativo, como para ler e manipular o objeto (voc ver isso na prxima lio).

    O sinal de arroba ( @ ) necessria quando voc est se referindo a qualquer objeto de recurso doXML. seguido pelo tipo de recurso ( ID neste caso), uma barra, em seguida, o nome do recurso

    ( edit_message ).

    The sinal de mais ( + ) antes de o tipo de recurso apenas necessrio quando voc est a definio deum ID recurso para pela primeira vez. Quando voc compilar o aplicativo, as ferramentas do SDK usar onome de ID para criar uma nova ID do recurso em seu projeto gen / R.java arquivo que se refere

    http://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:layout_widthhttp://developer.android.com/reference/android/view/View.html#attr_android:layout_widthhttp://developer.android.com/reference/android/view/View.html#attr_android:layout_widthhttp://developer.android.com/reference/android/view/View.html#attr_android:layout_heighthttp://developer.android.com/reference/android/view/View.html#attr_android:layout_heighthttp://developer.android.com/reference/android/view/View.html#attr_android:layout_heighthttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/TextView.html#attr_android:hinthttp://developer.android.com/reference/android/widget/TextView.html#attr_android:hinthttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/widget/TextView.html#attr_android:hinthttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/guide/topics/ui/declaring-layout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:layout_heighthttp://developer.android.com/reference/android/view/View.html#attr_android:layout_widthhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:orientationhttp://developer.android.com/reference/android/view/ViewGroup.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.html
  • 7/27/2019 Criando Um Projeto Android

    9/159

    aoEditTextelemento. Uma vez que a identificao de recurso declarado uma vez que desta forma,outras referncias para a identificao no necessrio o sinal de mais. Usando o sinal de mais necessrio somente quando a especificao de um novo ID de recurso e no precisava de recursosconcretos, tais como cordas ou layouts. Veja o sidebox para obter mais informaes sobre objetos derecurso.

    android: layout_widtheandroid: layout_height

    Em vez de usar tamanhos especficos para a largura e altura, o "wrap_content" especifica que o valorde exibio deve ser apenas to grande quanto necessrio para ajustar o contedo da vista. Se vocfosse ao invs de usar"match_parent" , ento oEditTextelemento que enche o ecr, porque iriacoincidir com o tamanho do paiLinearLayout. Para mais informaes, consulte oLayoutsguia.

    android: dicaEsta uma seqncia de caracteres padro para exibir quando o campo de texto est vazio. Em vez deusar uma string codificada como o valor, o "@ string / edit_message" valor refere-se a um recursode seqncia definido em um arquivo separado. Porque isso se refere a um recurso concreto (e noapenas um identificador), ele no precisa do sinal. No entanto, porque voc no definiu o recurso decadeia, no entanto, voc ver um erro do compilador em primeiro lugar. Voc vai corrigir isso na

    prxima seo, definindo a string.

    Nota: Este recurso corda tem o mesmo nome que o elemento ID: edit_message . No entanto, asreferncias a recursos so sempre por escopo o tipo de recurso (como ID ou corda ), portanto, usandoo mesmo nome no causar colises.

    Adicionar recursos de seqncia

    Quando voc precisa adicionar texto na interface do usurio, voc deve sempre especificar cadacorda como um recurso. Cadeia de Caracteres recursos permitem que voc para gerenciar todoo texto UI em um nico local, o que torna-lo mais fcil para localizar e atualizar detexto. Externalizao das cordas tambm permite localizar seu aplicativo para diferentes idiomas,fornecendo definies alternativas para cada recurso string.

    Por padro, o projeto Android inclui um arquivo de recurso de cadeia em res / valores /strings.xml .Adicionar uma nova seqncia chamado "edit_message" e defina o valor para"Digite uma mensagem." (Voc pode excluir o "hello_world" string).

    Enquanto voc est neste arquivo, adicione tambm uma string "Send" para o boto em brevevoc vai adicionar, chamado "button_send" .

    O resultado para strings.xml parecido com este:

  • 7/27/2019 Criando Um Projeto Android

    10/159

    Adicionar um boto

    Agora adicione umao layout, imediatamente aps aelemento:

    A altura ea largura so definidos como "wrap_content" de modo que o boto to grandequanto necessrio para ajustar o texto do boto. Este boto no precisa doandroid:idatributo, porque ele no vai ser referenciada a partir do cdigo de atividade.

    Faa a caixa de entrada Preencha a largura da tela

    A disposio est concebida de modo que tanto oEditarTextoeBotoelementos sosomente to grande quanto necessrio para ajustar o seu contedo, como mostrado na figura 2.

    Figura 2. TheEditTexteBotoelementos tm suas larguras definidas para "wrap_content" .

    Isso funciona bem para o boto, mas no to bem para o campo de texto, pois o usurio podedigitar algo mais.Ento, seria bom para preencher a largura da tela no utilizada com o campo detexto. Voc pode fazer isso dentro de umLinearLayoutcom opeso da propriedade, o que vocpode especificar usando oandroid: layout_weightatributo.

    O valor do peso um nmero que especifica a quantidade de espao restante cada vista deveconsumir, em relao quantidade consumida por vises irmos. Isso funciona mais ou menoscomo a quantidade de ingredientes de uma receita da bebida: "2 partes de vodka, 1 parte de licorde caf" significa dois teros da bebida vodka. Por exemplo, se d uma exibir um peso de 2 eum outro com peso de 1, a soma 3, ento a primeira vista enche 2/3 do espao remanescente

    e o segundo ponto de vista enche o resto. Se voc adicionar um terceiro ponto de vista e dar-lheum peso de 1, ento a primeira vista (com peso 2) agora fica 1/2 o espao restante, enquantoque os dois restantes se cada quarto.

    O peso padro para todos os pontos de vista 0, ento se voc especificar qualquer valor depeso maior que 0 a apenas um ponto de vista, ento, que a viso preenche o espao quepermanece aps todas as opinies so dadas o espao de que necessitam. Assim, parapreencher o espao restante em seu layout com oEditTextelemento, dar-lhe um peso de 1 edeixar o boto com nenhum peso.

    http://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weighthttp://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weighthttp://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weighthttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weighthttp://developer.android.com/reference/android/widget/LinearLayout.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/view/View.html#attr_android:idhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/Button.html
  • 7/27/2019 Criando Um Projeto Android

    11/159

    A fim de melhorar a eficincia da disposio quando se especificar o peso, deve alterar a larguradaEditarTextopara ser zero (0DP). Definir a largura a zero porque melhora o desempenhoesquema usando"wrap_content" como a largura requer que o sistema para calcular umalargura que em ltima anlise, porque o valor irrelevante de peso requer outro clculo largurapara preencher o espao restante.

    A Figura 3 mostra o resultado quando atribuir todo o peso doEditarTextoelemento.

    Figura 3. TheEditTextWidget dado todo o peso layout, assim preenche o espao restantenoLinearLayout.

    Aqui est como o seu arquivo de layout completo agora deve ser:

  • 7/27/2019 Criando Um Projeto Android

    12/159

    ANTERIORPRXIMA

    ESTA LIO ENSINA VOC A1. Responder ao boto Enviar

    2. Construir uma Intent

    3. Comece a segunda atividade4. Criar a segunda atividade

    5. Receba o Intent

    6. Mostrar a Mensagem

    VOC TAMBM DEVE LER Instalando o SDK

    Depois de completar alio anterior, voc tem um aplicativo que mostra uma atividade (uma nica tela), comum campo de texto e um boto. Nesta lio, voc vai adicionar algum cdigo para MainActivity que inicia

    uma nova atividade quando o usurio clica no boto Enviar.

    Responder ao boto Enviar

    Para responder a on-evento clique do boto, abrir aactivity_main.xml arquivo de layout e adicionaroandroid: onClickatributo elemento:

    Oandroid: onClickvalor do atributo, "sendMessage" , o nome de um mtodo em sua atividade que osistema de chamadas quando o usurio clica no boto.

    Abra o MainActivity classe (localizados no projeto src / directory) e adicionar o mtodo correspondente:

    / ** Chamado quando o usurio clica no boto Enviar * /pblico vazio sendMessage ( Ver vista ) {/ / Faz alguma coisa em resposta ao boto

    }

    Isso requer que voc importar oVerde classe:

    importao android . vista . Ver ;

    Dica: Em Eclipse, pressione Ctrl + Shift + O para importar classes em falta (Cmd + Shift + S no Mac).

    Para que o sistema para corresponder a esse mtodo para o nome do mtodo dado para android: onClick,a assinatura deve ser exatamente como mostrado. Especificamente, o mtodo deve:

    http://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/starting-activity.html#RespondToButtonhttp://developer.android.com/training/basics/firstapp/starting-activity.html#RespondToButtonhttp://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#StartActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#StartActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#CreateActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#CreateActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#ReceiveIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#ReceiveIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#DisplayMessagehttp://developer.android.com/training/basics/firstapp/starting-activity.html#DisplayMessagehttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/reference/android/widget/Button.htmlhttp://developer.android.com/reference/android/view/View.html#attr_android:onClickhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/sdk/installing/index.htmlhttp://developer.android.com/training/basics/firstapp/starting-activity.html#DisplayMessagehttp://developer.android.com/training/basics/firstapp/starting-activity.html#ReceiveIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#CreateActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#StartActivityhttp://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntenthttp://developer.android.com/training/basics/firstapp/starting-activity.html#RespondToButtonhttp://developer.android.com/training/basics/firstapp/building-ui.htmlhttp://developer.android.com/training/basics/firstapp/building-ui.html
  • 7/27/2019 Criando Um Projeto Android

    13/159

    Seja pblica

    Ter um valor de retorno void

    Ter umaVisocomo o nico parmetro (este ser oVerque foi clicado)

    Em seguida, voc vai preencher este mtodo para ler o contedo do campo de texto e entregar o texto paraoutra atividade.

    Construir uma Intent

    UmaInteno um objeto que fornece tempo de execuo de ligao entre os componentes separados(como duas atividades). AIntenorepresenta "a inteno de fazer alguma coisa." de um aplicativo Vocpode usar as intenes de uma grande variedade de tarefas, mas na maioria das vezes eles so usados parainiciar outra atividade.

    Dentro do sendMessage () mtodo, crie umaIntenode iniciar uma atividadechamadaDisplayMessageActivity :

    Inteno inteno = new Intent ( este , DisplayMessageActivity . classe );

    O construtor usado aqui tem dois parmetros:

    Umcontextocomo seu primeiro parmetro ( este usado porque aatividadede classe umasubclasse deContexto)

    Aclassedo componente de aplicao para o qual o sistema deve entregar aInteno(neste caso, aactividade que deve ser iniciado)

    O envio de uma inteno de outros aplicativosA inteno criou nesta lio o que considerado uma inteno explcita , pois aintenoespecifica o

    componente exato aplicativo ao qual deve ser dada a inteno. No entanto, as intenes tambm pode serimplcito ,caso em que aintenono especifica do componente desejado, mas permite que qualquer aplicao instalado no

    dispositivo para responder inteno contanto que satisfaz as especificaes de meta-dados para a aco que estespecificadas nas vriasIntenoparmetros. Para mais informaes, consulte a classe sobreInteragindo com

    outros Apps.

    Nota: A referncia a DisplayMessageActivity ir gerar um erro se voc estiver usando uma IDE, comoEclipse, pois a classe ainda no existe. Ignore o erro de agora, voc vai criar a classe em breve.

    A inteno no s lhe permite iniciar outra atividade, mas pode levar um pacote de dados para a atividadetambm. Dentro dosendMessage () mtodo, usefindViewById ()para obteroEditTextelemento eadicionar seu valor de texto com a inteno:

    Inteno inteno = new Intent ( este , DisplayMessageActivity . classe );EditText EDITTEXT = ( EditText ) findViewById ( R . id . edit_message );Cordas mensagem = EDITTEXT . getText . () toString ();inteno . putExtra ( EXTRA_MESSAGE , mensagem );

    Nota: Voc precisa agora instrues de importao

    paraandroid.content.Intent e android.widget.EditText .Voc vai definir o EXTRA_MESSAGE constanteem um momento.

    http://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/java/lang/Class.htmlhttp://developer.android.com/reference/java/lang/Class.htmlhttp://developer.android.com/reference/java/lang/Class.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/reference/android/app/Activity.html#findViewById(int)http://developer.android.com/reference/android/app/Activity.html#findViewById(int)http://developer.android.com/reference/android/app/Activity.html#findViewById(int)http://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/widget/EditText.htmlhttp://developer.android.com/reference/android/app/Activity.html#findViewById(int)http://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/training/basics/intents/index.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/java/lang/Class.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/content/Context.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.html
  • 7/27/2019 Criando Um Projeto Android

    14/159

    UmaIntenopode levar uma coleo de vrios tipos de dados como pares de valores-chavechamado extras . OputExtra ()mtodo leva o nome da chave no primeiro parmetro eo valor do segundoparmetro.

    Para que a prxima atividade para consultar os dados extras, voc deve definir a chave para o adicional de suainteno atravs de um constante pblico. Ento adicionar o EXTRA_MESSAGE definio para o inciodaMainActivity classe:

    pblico classe MainActivity estende Activity {pblico final, static Cordas EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE" ;...

    }

    Em geral, uma boa prtica para definir as chaves para extras inteno usando o nome do pacote do seuaplicativo como um prefixo. Isso garante que eles so nicos, no caso do seu aplicativo interage com outrosapps.

    Comece a segunda atividade

    Para iniciar uma atividade, chamarstartActivity ()e pass-lo a suainteno. O sistema recebe estechamado e inicia uma instncia daatividadeespecificada peloIntent.

    Com este novo cdigo, a completa sendMessage () mtodo que chamado pelo boto Enviar agora separece com isto:

    / ** Chamado quando o usurio clica no boto Enviar * /pblico vazio sendMessage ( Ver vista ) {

    Inteno inteno = new Intent ( este , DisplayMessageActivity . classe );EditText EDITTEXT = ( EditText ) findViewById ( R . id . edit_message );Cordas mensagem = EDITTEXT . getText . () toString ();inteno . putExtra ( EXTRA_MESSAGE , mensagem );startActivity ( inteno );

    }

    Agora voc precisa criar o DisplayMessageActivity classe para que isso funcione.

    Criar a segunda atividade

    http://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String,%20android.os.Bundle)http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String,%20android.os.Bundle)http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String,%20android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)http://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)http://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)http://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String,%20android.os.Bundle)http://developer.android.com/reference/android/content/Intent.html
  • 7/27/2019 Criando Um Projeto Android

    15/159

    Figura 1. O novo assistente de atividade em Eclipse.

    Para criar uma nova atividade usando Eclipse:

    1. Clique em Novo na barra de ferramentas.

    2. Na janela que aparece, abra o Androidpasta e selecione Atividade Android .Clique em Prxima .

    3. Selecione BlankActivity e clique Prxima.

    4. Preencha os dados de atividade:

    o Projeto : MyFirstApp

    o Atividade Nome : DisplayMessageActivity

    o Nome de layout : activity_display_message

    o Ttulo : Minha mensagem

    o Pai hierrquica : com.example.myfirstapp.MainActivity

    o Tipo de navegao : Nenhum

    Clique em Concluir.

    Se voc estiver usando uma IDE diferente ou as ferramentas de linha de comando, crie um novo arquivochamado DisplayMessageActivity.java no projeto src / diretrio, ao lado dooriginalMainActivity.java arquivo.

    Abra o DisplayMessageActivity.java arquivo. Se voc usou o Eclipse para criar esta atividade:

    A classe j inclui uma implementao do requeridoonCreate ()mtodo.

    H tambm uma implementao doonCreateOptionsMenu ()mtodo, mas voc no vai precisar delepara este aplicativo para que voc possa remov-lo.

    H tambm uma implementao deonOptionsItemSelected ()que lida com o comportamento para o

    bar da ao Up comportamento. Mantenha esta do jeito que est.

    Porque oActionBarAPIs esto disponveis apenas naFAVO DE MEL(API nvel 11) e superior, voc deveadicionar uma condio ao redor dogetActionBar ()mtodo para verificar a verso da plataformaatual.Alm disso, voc deve adicionar o @ SuppressLint ("NewApi") tag aoonCreate ()mtodo paraevitarfiaposerros.

    O DisplayMessageActivity classe deve agora olhar como este:

    pblico classe DisplayMessageActivity estende Activity {

    http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu(android.view.Menu)http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu(android.view.Menu)http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu(android.view.Menu)http://developer.android.com/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)http://developer.android.com/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)http://developer.android.com/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)http://developer.android.com/reference/android/app/ActionBar.htmlhttp://developer.android.com/reference/android/app/ActionBar.htmlhttp://developer.android.com/reference/android/app/ActionBar.htmlhttp://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMBhttp://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMBhttp://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMBhttp://developer.android.com/reference/android/app/Activity.html#getActionBar()http://developer.android.com/reference/android/app/Activity.html#getActionBar()http://developer.android.com/reference/android/app/Activity.html#getActionBar()http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/tools/help/lint.htmlhttp://developer.android.com/tools/help/lint.htmlhttp://developer.android.com/tools/help/lint.htmlhttp://developer.android.com/tools/help/lint.htmlhttp://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#getActionBar()http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMBhttp://developer.android.com/reference/android/app/ActionBar.htmlhttp://developer.android.com/reference/android/app/Activity.html#onOptionsItemSelected(android.view.MenuItem)http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu(android.view.Menu)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)
  • 7/27/2019 Criando Um Projeto Android

    16/159

    @ SuppressLint ( "NewApi" )@ Overrideprotegido vazio onCreate ( Bundle savedInstanceState ) {

    Super . onCreate ( savedInstanceState );setContentView ( R . disposio . activity_display_message );

    / / Certifique-se de que estamos rodando em Honeycomb ou superior para utilizarAPIs ActionBar

    se ( Construir . VERSO . SDK_INT > = Envergadura . VERSION_CODES . FAVO DE

    MEL ) { / / Mostra o boto na barra de ao.getActionBar . () setDisplayHomeAsUpEnabled ( verdadeiro );

    }}

    @ Overridepblico boolean onOptionsItemSelected ( MenuItem artigo ) {

    interruptor ( artigo . getItemId ()) {caso android . R . id . casa :

    NavUtils . navigateUpFromSameTask ( este );retornar verdadeiro ;

    }retornar de super . onOptionsItemSelected ( artigo );

    }}

    Se voc usou uma IDE diferente de Eclipse, atualize seu DisplayMessageActivity classe com o cdigoacima.

    Todas as subclasses deAtividadedeve implementar aonCreate ()mtodo. O sistema chama isso ao criaruma nova instncia da atividade. Este mtodo o lugar onde voc deve definir o layout da atividade comosetContentView ()mtodo e o lugar onde voc deve executar a configurao inicial para oscomponentes de atividade.

    Nota: Se voc estiver usando uma IDE diferente de Eclipse, seu projeto no contmoactivity_display_message layout que solicitado pelosetContentView (). Tudo bem, porque voc vaiatualizar este mtodo mais tarde e no estar usando esse layout.

    Adicionar a corda ttulo

    Se voc usou o Eclipse, voc pode pular para aprxima seo, porque o modelo fornece a seqncia de ttulopara a nova atividade.

    Se voc estiver usando uma IDE diferente de Eclipse, adicionar ttulo da nova atividade para

    o strings.xmlarquivo:

    ... Minha Mensagem

    Adicion-lo ao manifesto

    Todas as atividades devem ser declarados no seu arquivo de manifesto AndroidManifest.xml , usandoumelemento.

    Quando voc usa as ferramentas do Eclipse para criar a atividade, ele cria uma entrada padro. Se voc estiverusando uma IDE diferente, voc precisa adicionar a entrada de manifestar-se. Deve olhar como este:

    http://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/training/basics/firstapp/starting-activity.html#AddToManifesthttp://developer.android.com/training/basics/firstapp/starting-activity.html#AddToManifesthttp://developer.android.com/training/basics/firstapp/starting-activity.html#AddToManifesthttp://developer.android.com/guide/topics/manifest/activity-element.htmlhttp://developer.android.com/guide/topics/manifest/activity-element.htmlhttp://developer.android.com/guide/topics/manifest/activity-element.htmlhttp://developer.android.com/training/basics/firstapp/starting-activity.html#AddToManifesthttp://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html
  • 7/27/2019 Criando Um Projeto Android

    17/159

    ...

    Oandroid: parentActivityNameatributo declara o nome da atividade do pai esta atividade dentro dahierarquia lgica do aplicativo. O sistema utiliza esse valor para implementar comportamentos padro denavegao, tais comonavegao Upno Android 4.1 (API nvel 16) e superior. Voc pode fornecer os mesmoscomportamentos de navegao para as verses mais antigas do Android usando aBiblioteca de Apoioeadicionando oelemento, como mostrado aqui.

    Nota: O seu SDK Android j deve incluir a mais recente Biblioteca de suporte Android. includo com o pacoteADT, mas se voc estiver usando uma IDE diferente, voc deve t-lo instalado durante osAdicionandoPlataformas e Pacotespasso. Ao usar os modelos em Eclipse, a Biblioteca de Apoio automaticamenteadicionado ao seu projeto de aplicativo (voc pode ver o arquivo JAR da biblioteca listada em DependnciasAndroid). Se voc no estiver usando o Eclipse, voc precisa adicionar manualmente a biblioteca para o seuprojeto de seguir o guia paraa criao da Biblioteca de Apoio, em seguida, voltar aqui.

    Se voc est desenvolvendo com o Eclipse, voc pode executar o aplicativo agora, mas no acontece muitacoisa. Clicando no boto Enviar comea a segunda atividade, mas ele usa um layout padro "Ol, mundo",previsto pelo modelo. Em breve voc vai atualizar a atividade a vez exibir uma visualizao de textopersonalizado, por isso, se voc estiver usando uma IDE diferente, no se preocupe que o aplicativo ainda no

    ir compilar.

    Receba o Intent

    Cadaatividade invocado por umIntent, independentemente de como o usurio navegou l. Voc podeobter oIntentque comeou sua atividade chamandogetIntent ()e recuperar os dados contidos nele.

    No DisplayMessageActivity da classeonCreate ()mtodo, se a inteno e extrair a mensagem entreguepelo MainActivity :

    Inteno inteno = getIntent ();Cordas mensagem = inteno . getStringExtra ( MainActivity . EXTRA_MESSAGE );

    Mostrar a Mensagem

    Para mostrar a mensagem na tela, crie umTextViewwidget e definir o texto usandosetText (). Em

    seguida, adicione oTextViewcomo a viso de raiz o layout da atividade, passando-a parasetContentView().

    A completaonCreate ()mtodo para DisplayMessageActivity agora se parece com isto:

    http://developer.android.com/guide/topics/manifest/activity-element.html#parenthttp://developer.android.com/guide/topics/manifest/activity-element.html#parenthttp://developer.android.com/guide/topics/manifest/activity-element.html#parenthttp://developer.android.com/design/patterns/navigation.htmlhttp://developer.android.com/design/patterns/navigation.htmlhttp://developer.android.com/design/patterns/navigation.htmlhttp://developer.android.com/tools/extras/support-library.htmlhttp://developer.android.com/tools/extras/support-library.htmlhttp://developer.android.com/tools/extras/support-library.htmlhttp://developer.android.com/guide/topics/manifest/meta-data-element.htmlhttp://developer.android.com/guide/topics/manifest/meta-data-element.htmlhttp://developer.android.com/guide/topics/manifest/meta-data-element.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/tools/extras/support-library.html#SettingUphttp://developer.android.com/tools/extras/support-library.html#SettingUphttp://developer.android.com/tools/extras/support-library.html#SettingUphttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/app/Activity.html#getIntent()http://developer.android.com/reference/android/app/Activity.html#getIntent()http://developer.android.com/reference/android/app/Activity.html#getIntent()http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.html#setText(char[],%20int,%20int)http://developer.android.com/reference/android/widget/TextView.html#setText(char[],%20int,%20int)http://developer.android.com/reference/android/widget/TextView.html#setText(char[],%20int,%20int)http://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)http://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/widget/TextView.html#setText(char[],%20int,%20int)http://developer.android.com/reference/android/widget/TextView.htmlhttp://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#getIntent()http://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/content/Intent.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/tools/extras/support-library.html#SettingUphttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/sdk/installing/adding-packages.htmlhttp://developer.android.com/guide/topics/manifest/meta-data-element.htmlhttp://developer.android.com/tools/extras/support-library.htmlhttp://developer.android.com/design/patterns/navigation.htmlhttp://developer.android.com/guide/topics/manifest/activity-element.html#parent
  • 7/27/2019 Criando Um Projeto Android

    18/159

    @ Overridepblico vazio onCreate ( Bundle savedInstanceState ) {

    Super . onCreate ( savedInstanceState );

    / / Pega a mensagem da intenoInteno inteno = getIntent ();Cordas mensagem = inteno . getStringExtra ( MainActivity . EXTRA_MESSAGE );

    / / Criar o ponto de vista do textoTextView textView = new TextView ( este );textView . setTextSize ( 40 );textView . setText ( mensagem );

    / / Definir a viso de texto como o layout da atividadesetContentView ( textView );

    }

    Agora voc pode executar o aplicativo. Quando se abre, digite uma mensagem no campo de texto, clique emEnviar, e aparece a mensagem na segunda atividade.

    Figura 2. Ambas as atividades do aplicativo finais, em execuo no Android 4.0.

    isso a, voc construiu seu primeiro aplicativo Android!

    Para saber mais sobre a criao de aplicativos para Android, continuar a seguir as aulas de formao bsica. Aprxima turma estGerenciando o Ciclo de Vida Atividade.

    http://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/index.html
  • 7/27/2019 Criando Um Projeto Android

    19/159

    Gerenciando o Ciclo de Vida AtividadeCOMEAR

    DEPENDNCIAS E PR-REQUISITOS Como criar um projeto Android (vejaCriando um projeto Android)

    VOC TAMBM DEVE LER Atividades

    EXPERIMENT-LO

    Baixe o demo

    ActivityLifecycle.zip

    Como um usurio navega atravs, de, e de volta para o seu aplicativo, asAtividade

    instncias na suatransio aplicativo entre os diferentes estados do seu ciclo de vida. Por exemplo, quando sua atividade iniciado pela primeira vez, ele vem para o primeiro plano do sistema e recebe o foco do usurio. Durante esteprocesso, o sistema Android chama uma srie de mtodos de ciclo de vida na atividade em que voc configurara interface do usurio e outros componentes. Se o usurio executa uma ao que comea uma outra atividadeou muda para outro aplicativo, o sistema chama um outro conjunto de mtodos de ciclo de vida em suaatividade, uma vez que se move para o fundo (onde a atividade no mais visvel, mas a instncia e seuestado permanece intacta ).

    Dentro dos mtodos de retorno de chamada do ciclo de vida, voc pode declarar como sua atividade secomporta quando as folhas de usurios e re-entra na atividade. Por exemplo, se voc est construindo um

    player de vdeo streaming, voc pode pausar o vdeo e terminar a conexo de rede quando o usurio mudapara outro aplicativo. Quando o usurio retorna, voc pode ligar-se rede e permitir que o usurio reiniciar ovdeo a partir do mesmo local.

    Esta classe explica importantes mtodos de retorno de chamada do ciclo de vida que cadaAtividadeinstnciarecebe e como voc pode us-los para que sua atividade faz o que o usurio espera e no consome recursosdo sistema quando sua atividade no precisa delas.

    Lies

    Iniciar uma AtividadeAprenda o bsico sobre o ciclo de vida de atividade, como o usurio pode lanar o seu aplicativo, ecomo realizar a criao atividade bsica.

    Pausar e retomar uma atividadeSaiba o que acontece quando sua atividade interrompida (parcialmente escondido) e retomado eo quevoc deve fazer durante estas mudanas de estado.

    Interrupo e reincio de actividadeSaiba o que acontece quando o usurio deixa completamente sua atividade e retorna a ele.

    Recriando uma AtividadeSaiba o que acontece quando sua atividade destruda e como voc pode reconstruir o estado deatividade, quando necessrio.

    http://developer.android.com/training/basics/activity-lifecycle/starting.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.htmlhttp://developer.android.com/training/basics/activity-lifecycle/pausing.htmlhttp://developer.android.com/training/basics/activity-lifecycle/pausing.htmlhttp://developer.android.com/training/basics/activity-lifecycle/stopping.htmlhttp://developer.android.com/training/basics/activity-lifecycle/stopping.htmlhttp://developer.android.com/training/basics/activity-lifecycle/recreating.htmlhttp://developer.android.com/training/basics/activity-lifecycle/recreating.htmlhttp://developer.android.com/training/basics/activity-lifecycle/recreating.htmlhttp://developer.android.com/training/basics/activity-lifecycle/stopping.htmlhttp://developer.android.com/training/basics/activity-lifecycle/pausing.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/training/basics/firstapp/creating-project.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.html
  • 7/27/2019 Criando Um Projeto Android

    20/159

    Iniciar uma AtividadeANTERIORPRXIMA

    ESTA LIO ENSINA VOC A1. Entenda os retornos do Ciclo de Vida

    2. Especifique Lanador atividade do seu App

    3. Criar uma nova instncia

    4. Destrua o Activity

    VOC TAMBM DEVE LER Atividades

    EXPERIMENT-LO

    Baixe o demo

    ActivityLifecycle.zip

    Ao contrrio de outros paradigmas de programao no qual os aplicativos so lanados com um main() mtodo, o sistema Android inicia cdigo em umActivityinstncia invocando mtodos de retornoespecficos que correspondem a fases especficas do seu ciclo de vida. H uma seqncia de mtodos deretorno de chamada que iniciam uma atividade e uma seqncia de mtodos de callback que derrubar umaatividade.

    Esta lio fornece uma viso geral dos mtodos de ciclo de vida mais importantes e mostra-lhe como lidar coma primeira chamada do ciclo de vida que cria uma nova instncia de sua atividade.

    Entenda os retornos do Ciclo de Vida

    Durante a vida de uma atividade, o sistema chama um conjunto bsico de mtodos de ciclo de vida em umaseqncia semelhante a uma pirmide de degraus. Ou seja, cada fase do ciclo de vida da atividade umaetapa separada na pirmide. Como o sistema cria uma nova instncia de atividade, cada mtodo de retornomove o estado de atividade um passo em direo ao topo. O topo da pirmide o ponto em que a atividadeest sendo executado em primeiro plano eo usurio pode interagir com ele.

    medida que o usurio comea a deixar a atividade, o sistema chama outros mtodos que movem o estado deatividade de volta para baixo da pirmide, a fim de desmantelar a atividade. Em alguns casos, a atividadepassar nica forma parte de baixo da pirmide e esperar (por exemplo, quando o usurio muda para outroapp), de que ponto a atividade pode se mover de volta ao topo (se o usurio retorna atividade) e currculoonde o usurio parou.

    http://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-stateshttp://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-stateshttp://developer.android.com/training/basics/activity-lifecycle/starting.html#launching-activityhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#launching-activityhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Createhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Createhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Destroyhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Destroyhttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/shareables/training/ActivityLifecycle.ziphttp://developer.android.com/guide/components/activities.htmlhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Destroyhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#Createhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#launching-activityhttp://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-stateshttp://developer.android.com/training/basics/activity-lifecycle/index.htmlhttp://developer.android.com/training/basics/activity-lifecycle/index.html
  • 7/27/2019 Criando Um Projeto Android

    21/159

    Figura 1.uma ilustrao simplificada do ciclo de vida Actividade expressa como uma pirmide passo.Isto mostracomo, para cada callback usado para levar a atividade um passo em direo ao estado retomado no topo, h um

    mtodo de retorno que leva a atividade um passo para baixo.A atividade tambm pode retornar ao estado retomadaa partir do estado de pausa e parou.

    Dependendo da complexidade de sua atividade, voc provavelmente no precisa implementar todos osmtodos do ciclo de vida. No entanto, importante que voc entenda cada um e implementar as queasseguram o seu aplicativo se comporta da maneira como os usurios esperam. Implementar os seus mtodosde ciclo de vida de atividade corretamente garante que o seu aplicativo se comporta bem em vrias formas,incluindo que:

    No falhar se o usurio recebe uma chamada de telefone ou muda para outro aplicativo enquanto estiverusando o aplicativo.

    No consome recursos valiosos do sistema, quando o usurio no est usando ativamente.

    No perder o progresso do usurio se ele deixar o seu aplicativo e retornar a ele em um momento posterior.

    No falhar ou perder o progresso do usurio quando a tela gira entre a orientao horizontal e vertical.

    Como voc vai aprender as seguintes lies, h vrias situaes em que uma atividade transies entrediferentes estados que esto ilustrados na figura 1. No entanto, apenas trs destes estados pode seresttico.Ou seja, a actividade pode existir em uma de apenas trs estados, por um perodo de tempoprolongado:

    RetomadoNeste estado, a atividade est em primeiro plano eo usurio pode interagir com ele. (Tambm por vezesreferido como o estado "running").

    PausadaNeste estado, a atividade parcialmente obscurecida por outra atividade a outra atividade que est emprimeiro plano semi-transparente ou no cobrir a tela inteira. A atividade fez uma pausa no recebeentrada do usurio e no pode executar qualquer cdigo.

    ParadoNeste estado, a actividade est completamente oculto e no visvel para o utilizador, que considerado no fundo. Enquanto est parado, a instncia de atividade e toda a sua informao deestado, tais como variveis membro mantido, mas no pode executar qualquer cdigo.

    Os outros estados (criado e iniciado) so transitrios eo sistema se move rapidamente a partirdeles para o prximo estado, chamando o prximo mtodo de retorno de chamada do ciclo devida. Isto , depois de o sistema chamaonCreate (), rapidamente chamaonStart (), que rapidamente seguido poronResume ().

    http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)http://developer.android.com/reference/android/app/Activity.html#onStart()http://developer.android.com/reference/android/app/Activity.html#onStart()http://developer.android.com/reference/android/app/Activity.html#onStart()http://developer.android.com/reference/android/app/Activity.html#onResume()http://developer.android.com/reference/android/app/Activity.html#onResume()http://developer.android.com/reference/android/app/Activity.html#onResume()http://developer.android.com/reference/android/app/Activity.html#onResume()http://developer.android.com/reference/android/app/Activity.html#onStart()http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)
  • 7/27/2019 Criando Um Projeto Android

    22/159

    Isso tudo para o ciclo de vida atividade bsica. Agora voc vai comear a aprender sobrealguns dos comportamentos especficos do ciclo de vida.

    Especifique Lanador atividade do seu App

    Quando o usurio seleciona o cone do aplicativo na tela inicial, o sistema chama oonCreate()mtodo para aAtividadeem seu aplicativo que voc tenha declarado ser o "lanador" (ou"principal") atividade. Esta a atividade que serve como ponto de entrada principal para ainterface de usurio do aplicativo.

    Voc pode definir qual a atividade a ser usado como principal atividade o arquivo de manifestoAndroid,AndroidManifest.xml , que est na raiz do diretrio do seu projeto.

    A principal atividade para sua aplicao deve ser declarado no manifesto com umque inclui oMAINao eLAUNCHERcategoria. Por exemplo:

    Nota: Quando voc cria um novo projeto Android com as ferramentas do Andr