2015 2015.1 3 2015.1 4 2015.1 早渕3-30-8 5 Created Date 20060629082619Z ...
Introdução ao android - siecomp 2015.1
-
Upload
afonso-machado -
Category
Engineering
-
view
290 -
download
7
Transcript of Introdução ao android - siecomp 2015.1
![Page 1: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/1.jpg)
Introdução ao Android
Afonso da Silva Machado
3 de Março de 2015
![Page 2: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/2.jpg)
Eu
Afonso da Silva Machado
7º Semestre de Engenharia de Computação
Universidade Estadual de Feira de Santana
Membro da Empresa Junior de Engenharia de
Computação
![Page 3: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/3.jpg)
Você
Quem tem um aparelho Android?
Quem sabe programar em Java?
Quem já programou pra alguma plataforma móvel?
Quem já “programou” pelo menos um Hello World pra
Android?
![Page 4: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/4.jpg)
Conteúdo
•Histórico e Características•Eclipse x Android Studio
• Android SDK• AVD
•Arquitetura•Debug•Organização da IDE•Conceitos específicos•Mão na massa
![Page 5: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/5.jpg)
Metodologia
•Dividindo em três partes1. Manuseando a IDE2. Aprendendo conceitos fundamentais3. Aplicando seus conceitos
a) Um pequeno app para cada conceitob) Apps completos para exercitar
![Page 6: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/6.jpg)
Você
Código Aberto
Desenvolvido inicialmente pela Android Inc.
Comprado pela Google em 2005 e Lançado em 2008
Baseado no Kernel do Linux
Rodava com uma máquina virtual Java própria: Dalvik VM,
a partir da versão 5.0 roda com uma nova máquina virtual
ART (Android Run Time).
![Page 7: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/7.jpg)
Um sistema operacional para Tablets
![Page 8: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/8.jpg)
E smartphones?
![Page 9: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/9.jpg)
#sqn
![Page 10: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/10.jpg)
Android Wear e Android TV
![Page 11: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/11.jpg)
Diferentes Smartphones
![Page 12: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/12.jpg)
E em breve: Android Auto
![Page 13: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/13.jpg)
Anunciado para Grandes Marcas
http://www.android.com/
![Page 14: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/14.jpg)
Várias versões
![Page 15: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/15.jpg)
Android 5.0: Lollipop
![Page 16: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/16.jpg)
Várias versões
1.0: 2008, O lançamento, HTC Dream;
2.0: Google, Eclair e Froyo, Nexus One;
2.3: Gingerbred, o sucesso;
3.0: Versão para Tablets, Honeycomb;
4.0: A ascenção, Ice Cream Sandwich, Jelly Bean e Kit Kat;
5.0: A ouzadia, Lollipop.
![Page 17: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/17.jpg)
Versões
http://developer.android.com/about/dashboards/index.html
![Page 18: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/18.jpg)
Google play store, filmes, músicas...
![Page 19: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/19.jpg)
Android Studio (ou Eclipse?)
http://developer.android.com/sdk/index.html
![Page 20: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/20.jpg)
Vamos ao que Interessa ;)
![Page 21: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/21.jpg)
Mas e o Eclipse?
![Page 22: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/22.jpg)
Java + Um bando de coisa
Chato?
Quantos gostam de java?
Quantos gostam de eclipse?
![Page 23: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/23.jpg)
A idéia era: Android gambiarreitor tabajara
Seu kit de ferramentas e plugins Android que você instala no seu Eclipse, e
pronto, já pode programar seus apps nativos
![Page 24: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/24.jpg)
ADT: Android Developer Tools
O ADT foi a primeira IDE para desenvolvimento em Android
Todo o processo de build é baseado na ferramenta Apache Ant
Construído na infraestrutura do Eclipse
![Page 25: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/25.jpg)
![Page 26: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/26.jpg)
Era legal... Mas...
• Interface muito misturada
•Meio eclipse seco, meio Android
•Relativamente pesado
•Emulador quase impossível de ser executado
![Page 27: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/27.jpg)
Até que...
16 de maio de 2013
Google I/O
Android KitKat
Google Nexus 5
IDE exclusiva para Android
![Page 28: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/28.jpg)
Android Studio
No mesmo mês (Maio de 2014) foi lançado o primeiro
beta o Android Studio, versão 0.1
![Page 29: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/29.jpg)
Android Studio
No mês de dezembro de 2014 a Google publicou o
download da primeira versão estável (1.0)
![Page 30: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/30.jpg)
![Page 31: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/31.jpg)
Android Studio
Android Studio é a nova suíte de desenvolvimento de apps
em Android
Foi projetado utilizando a infraestrutura da IDE IntelliJ IDEA,
da JetBrains
Utiliza o Gradle como novo sistema de build no processo de
desenvolvimento
![Page 32: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/32.jpg)
A idéia é
• Apresentar uma IDE com uma interface intuitiva e
organizada;
• Mais “leve” e mais rápida;
• Multiplataforma;
• Novo sistema de automação de compilação, deixando
de lado o “Ant” e adicionando o “Gradle”.
• Mantendo o Android SDK
![Page 33: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/33.jpg)
Features do Android Studio
• Baseado no flexível sistema de build Gradle
• Variantes de build e geração de múltiplos APKs
• Suporte expandido de templates para Google Play
Services e
• vários tipos de dispositivos
• Editor de layout poderoso com suporte para edição de
temas
• Ferramenta Lint para capturar problemas de performance,
![Page 34: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/34.jpg)
Features do Android Studio
• usabilidade, compatibilidade de versões, dentre outros
• suporte para utilização do ProGuard e assinatura de apps
• suporte embutido para Google Cloud Platform, tornando
mais fácil
• integrar funcionalidades do Google Cloud Messaging e
App Engine
![Page 35: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/35.jpg)
Features do Android Studio
Funcionalidade
Sistema de Build
Build de dependências baseadas no Apache Maven Sim Não
Variantes de build e geração de múltiplos APKs (ex:Android Wear, Android TV)
Sim Não
Auto-completar de código Android avançado e refactoring
Sim Não
Editor gráfico de layout Sim Sim
Assinatura de APK e gerenciamento de keystore Sim Sim
Suporte à NDK Sim Sim
![Page 36: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/36.jpg)
Requerimentos (pesado mas leve)
Windows OS X Linux
Microsoft Windows 8/7/Vista/2003 (32 ou 64 bit)
Mac OS X 10.8.5 or mais atual, up to 10.10 to up 10.10.1 up 10.10.2
GNOME ou KDE ou Unity desktop no Ubuntu ou Fedora
2 GB RAM mínimo, 4 GB RAM recomendado
2 GB RAM mínimo, 4 GB RAM recomendado
2 GB RAM mínimo, 4 GB RAM recomendado
500 MB de espaço em disco 500 MB de espaço em disco 500 MB de espaço em disco
16 GB de espaço livre para o Android SDK e suas imagens de sistema
16 GB de espaço livre para o Android SDK e suas imagens de sistema
16 GB de espaço livre para o Android SDK e suas imagens de sistema
Java Development Kit (JDK) 7 oumais atual
Java Development Kit (JDK) 7 oumais atual
Java Development Kit (JDK) 7 oumais atual
Resolução mínima de tela: 1280x800 Resolução mínima de tela: 1280x800 Resolução mínima de tela: 1280x800
![Page 37: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/37.jpg)
Android SDK
•Um kit de ferramentas onde você encontrará todas as ferramentas e API’s necessárias para fazer o seu aplicativo usando o Android Studio ou o Eclipse
![Page 38: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/38.jpg)
Vamos explorar
•Abra o Android Studio.
$ cd android-studio/
$ cd bin/
$ sh studio.sh
![Page 39: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/39.jpg)
Criando um projeto
![Page 40: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/40.jpg)
Criando um projeto
![Page 41: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/41.jpg)
Criando um projeto
![Page 42: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/42.jpg)
Isso é pra mais tarde ;)
![Page 43: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/43.jpg)
Enquanto Esperamos...
![Page 44: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/44.jpg)
1. Usando seu aparelho Android
2. Usando um Android Virtual Device
Testando seus apps
![Page 45: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/45.jpg)
Usando seu aparelho Android, conectando a uma porta USB do seu computador e ativando o modo de depuração no dispositivo
Testando seus apps
![Page 46: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/46.jpg)
•Mais rápido
•Mais confortável
•Mais técnico
•Acesso mais rápido à DEBUGs
Testando no seu aparelho Android
![Page 47: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/47.jpg)
Usando um Android Virtual Device (AVD)
Testando seus apps
![Page 48: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/48.jpg)
•É basicamente um emulador do SO no seu computador (Semelhante ao Virtual Box)
•Dentro de um AVD você pode emular câmera, rede, memória RAM, armazenamento interno e processador.
Android Virtual Device (AVD)
![Page 49: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/49.jpg)
•Lento quando instalado em máquinas com pouca memória e baixo processamento
•Devido a travamentos, a experiência com o sistema e com o seu aplicativo se torna ruim
•Alternativa grátis
•Bom método de testar uma nova versão do Android
Android Virtual Device (AVD)
![Page 50: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/50.jpg)
•Quem tiver um celular Android, use;
•Caso contrário usaremos um AVD;
•Mas criaremos um para entendermos seu funcionamento
•Seu projeto ja abriu?
Por via das duvidas...
![Page 51: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/51.jpg)
Barra principal
Debug
Compilar e Executar
Dispositivos Virtuais
Android SDK Tools
Monitoramento do Dispositivo
![Page 52: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/52.jpg)
Procedimentos Iniciais
Dispositivos Virtuais
Android SDK Tools
Monitoramento do Dispositivo
![Page 53: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/53.jpg)
Prática
Criar e executar um AVD
Verificar pacotes do Android SDK
![Page 54: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/54.jpg)
Enquanto seu AVD não abre...
![Page 55: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/55.jpg)
Vamos à alguns conceitos
![Page 56: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/56.jpg)
Arquitetura de uma aplicação
• Linux Kernel
• Bibliotecas
• Frameworks
• Aplicações
• Android Runtime ou Dalvik VM
![Page 57: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/57.jpg)
Arquitetura do Android
![Page 58: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/58.jpg)
Linux Kernel
Permite que a plataforma Android tenha alta portabilidade
Por ser de código aberto permite que talentos individuais ou companhias o melhorem ainda mais (ou piorem –’)
![Page 59: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/59.jpg)
Bibliotecas
A camada acima do Kernel contém as bibliotecas nativas do Android
Essas bibliotecas são todasescritas em C ou C++ e
compiladas para a arquiteturade hardware específicautilizada pelo telefone.
Ex.: Codecs de mídia, Banco de Dados AQL
![Page 60: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/60.jpg)
Android Runtime
• Core libraries: gráficos 2D, interações com o SO, collections do Java
• Máquina Virtual Android Runtime
![Page 61: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/61.jpg)
Dalvik VM x ART
• No Dalvik (Just-in-time), os aplicativos instalados no Android são interpretados pela máquina virtual Dalvik, e então as informações deles são enviadas até a interface gráfica
• No ART (Ahead-of-time), os códigos são pré-compilados na linguagem de execução já durante a instalação dos aplicativos. Isso significa que a instalação dos softwares pode ser mais demorada, mas também representa mais rapidez na execução dos apps
![Page 62: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/62.jpg)
Dalvik VM ART
Usa a abordagem just-in-time, que resulta em menor consumo de espaço de armazenamento, mas o tempo de carregamento
dos apps é mais longo;
Usa a abordagem antes-do-tempo, que compila os aplicativos
quando eles são instalados, resultando em tempos de carga e
uso do processador menores;
O cache se acumula ao longo do tempo, de modo que o tempo de
inicialização são rápidos;
O cache é construído no boot dos dispositivo, logo reiniciar leva
muito mais tempo;
Como o espaço ocupado é menor, ele unciona melhor para dispositivos de armazenamento
interno menor.
consome muito mais espaço de armazenamento, uma vez que ele armazena aplicativos compilados
além dos APKs.
Sem suporte à 64bits Suporte à 64bits
![Page 63: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/63.jpg)
![Page 64: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/64.jpg)
Framoworks e Aplicações
• Gerenciadores de câmera, GPS, janelas...
• Telefone, mensagens, câmera, e o seu aplicativo
![Page 65: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/65.jpg)
Seu AVD já abriu?
![Page 66: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/66.jpg)
Se sim, vamos brincar com ele.
![Page 67: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/67.jpg)
DDMS: Dalvik Debug Monitor Server
Abra o Monitoramento do Dispositivo
![Page 68: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/68.jpg)
•Ferramenta de Debug do Android Studio (Já existia no Eclipse);
•Mas no Android Studio a ferramenta pode também ser usada para debugar com o seu smartphone Android
DDMS: Dalvik Debug Monitor Server
![Page 69: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/69.jpg)
•Abra a aba “Emulator Tool” e simule uma ligação e um envio de SMS
Prática
![Page 70: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/70.jpg)
Deixe seu AVD aberto e vamos pra outra parte
![Page 71: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/71.jpg)
Lembram de quando eu falei sobre “Activity”?
![Page 72: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/72.jpg)
Equivale à uma tela.
Cada Activity é definida em dois arquivosres/layout/activity_nome.xml (visual)src/.../NomeActivity.java (comportamento)
Activity
![Page 73: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/73.jpg)
•Crie a sua Activity
Prática
![Page 74: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/74.jpg)
Hello world!
![Page 75: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/75.jpg)
Estrutura de um Projeto no Android Studio
![Page 76: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/76.jpg)
Perspectivas de Desenvolvimento
Projeto Pacotes Android
![Page 77: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/77.jpg)
Estrutura do projetoNome do projeto(mesmo nome do diretório)
![Page 78: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/78.jpg)
Estrutura do projetoPasta com arquivos de
configuração da IDE
![Page 79: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/79.jpg)
Estrutura do projetoMódulo do projeto
O ícone muda conforme o tipo de módulo (wear, TV, glass)
![Page 80: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/80.jpg)
Estrutura do projetoContém os arquivos compilados do app e os arquivos
auxiliares (layouts, arquivos *.class, arquivo R.java)
![Page 81: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/81.jpg)
Estrutura do projeto
Pasta com as bibliotecas utilizadasContém os arquivos *.jar
![Page 82: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/82.jpg)
Estrutura do projeto
Pasta com todo o código-fonte do aplicativoPor padrão o Android Studio cria os fontes em “src/main/java
![Page 83: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/83.jpg)
Estrutura do projeto
Pacote principal das classes de testePor padrão o Android Studio cria os fontes em “src/androidTest/java
![Page 84: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/84.jpg)
Estrutura do projeto
Arquivos de recursos do aplicativoLayouts, telas, strings, ícones do app
![Page 85: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/85.jpg)
Estrutura do projeto
Arquivo ‘Manifest’ do app (nome, versão do Android, permissões...)
No Android Studio, cada módulo tem um arquivo ‘manifest’
![Page 86: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/86.jpg)
Estrutura do projeto
Arquivo de configuração do módulo appHerdado da infraestrutura do IntelliJ
![Page 87: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/87.jpg)
Estrutura do projeto
Arquivo build.gradle para o módulo appContém arquivos de configuração e tarefas do módulo,
como versão mínima, versão padrão, dependências (escrito em Groovy)
![Page 88: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/88.jpg)
Estrutura do projeto
Pacote de arquivos do Gradle
![Page 89: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/89.jpg)
Estrutura do projeto
Arquivo build.gradle do projetoContém informações gerais do projeto (repositórios)
![Page 90: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/90.jpg)
Estrutura do projeto
Arquivo de propriedades do GradleConfigurações específicas do gradle (gerado)
![Page 91: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/91.jpg)
Estrutura do projeto
Script para execução das tarefas do GradleUtilizado no processo de realizar a construção do app
![Page 92: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/92.jpg)
Estrutura do projeto
Informações locais (SDK)Informa a localização do Android SDK (gerado)
![Page 93: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/93.jpg)
Estrutura do projeto
Arquivo de configuração do projetoHerdado da infraestrutura do IntelliJ
![Page 94: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/94.jpg)
Estrutura do projeto
Arquivo de configuração dos módulosContém as informações dos módulos do projeto
![Page 95: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/95.jpg)
Estrutura do projeto
Bibliotecas externasLista de bibliotecas externas ao projeto (SDK, JDK, etc)
![Page 96: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/96.jpg)
Layout
![Page 97: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/97.jpg)
Layout
• Todo o layout e interface gráfica de um aplicativo feito no Android Studio está inserido num arquivo .xml, que é criado junto com uma Activity;
![Page 98: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/98.jpg)
Layout
• Pode ser manuseado tanto o código xmlquanto a ferramenta de interface do Android Studio.
![Page 99: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/99.jpg)
strings.xml
• res/values/strings/xml
Útil para traduzir um app para vários idiomas
(Usando um arquivo strings.xml para cada idioma)
![Page 100: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/100.jpg)
Código Java
• src/.../MainActivity.java
• Todas as Activities são herdam da classe ActionBarActivity• Para cada Actvity há um layout indicado no código• Qualquer componente da tela é referenciado no arquivo R.java
![Page 101: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/101.jpg)
styles.xml
• Contém o estilo que você usa para o aplicativo e seus componentes
Útil para economizar linhas nos arquivos do layout, aplicando os estilos dos componentes
![Page 102: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/102.jpg)
Arquivo R.java (Gerado pelo compilador)
• Possui métodos estáticos com as referências de todos os recursos do projeto
• Cada recurso é identificado por um número. O compilador gera constantes par facilitar o uso de recursos no código fonte
• É gerada automaticamente pelo Android Studio e nunca deve ser alterada manualmente
![Page 103: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/103.jpg)
Compilando seu projeto
Make Project Run
![Page 104: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/104.jpg)
Compilando seu projeto
Substitua no arquivo strings.xml, “Hello, World” por qualquer outra String
Execute o app
![Page 105: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/105.jpg)
Compilando seu projeto
Substitua no arquivo styles.xml o “parent” por “Base.V14.Theme.AppCompact”
Execute o app
![Page 106: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/106.jpg)
Interação
![Page 107: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/107.jpg)
Adicione um botão
![Page 108: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/108.jpg)
Ids!
Quando você adiciona mais de um componente numa tela, os componentes são organizados por IDs
![Page 109: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/109.jpg)
Ids!
Os Ids são referenciados no arquivo R.java, para facilitara interação com os componentes, basta apenas usar seuID
![Page 110: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/110.jpg)
Clique!
Usando o método “onClick” e chamando-o no arquivo.java da sua activity
android:onClick=“botaoClicado”
public void botaoClicado (View v){
}
![Page 111: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/111.jpg)
Prática
1. Exibir uma mensagem na tela
2. Exibir algo no Log ao tocar o botão
3. Exibir a quantidade de vezes que o botão foi tocado
4. Mudar o texto do textView (Nosso antigo ‘HelloWorld!’)
![Page 112: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/112.jpg)
Toast (mensagem na tela)
Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
![Page 113: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/113.jpg)
Log (não visível para o usuário)
Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
//métodos de Log
Log.v //Verbose
Log.d //Debug
Log.i //Info
Log.e //Warnig
Log.wtf //What a F***
![Page 114: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/114.jpg)
Método findViewById
• Use este método para acessar qualquer ID disponível para sua aplicação no arquivo R.java no tempo de execução.
TextView texto = (TextView) findViewById(R.id.textView1);
texto.setText("Clicou "+x+" vezes");
![Page 115: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/115.jpg)
Práticazinha
• Modifique o texto do Botão ao tocar nele
![Page 116: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/116.jpg)
Prática
• Adicione um campo de texto ‘EditView’ na sua Activity
• Ao clicar no botão, altere o TextView para o valor do campo de texto.
Boa prática: crie um atributo para cada view e inicialize todos no onCreate (usando findViewById)
![Page 117: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/117.jpg)
Ciclo de vida de uma Activity
![Page 118: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/118.jpg)
Ciclo de vida de uma Activity
![Page 119: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/119.jpg)
Prática
Implemente os métodos do ciclo de vida de umaactivity para emitir uma mensagem de log paracada um
Tente fazer com que onDestroy seja chamado
![Page 120: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/120.jpg)
Prática
Rotacione o dispositivo (Ctrl + F11) e veja quais métodos são chamados.
![Page 121: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/121.jpg)
Seu primeiro app funcional!
Usando dos conhecimentos até agora passados, implemente um aplicativo que cálcule suas 3 médias de alguma disciplina e diga se você está ou não aprovado
![Page 122: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/122.jpg)
Dica!
Use três ‘EditText’ + 3 ‘TextView’ para as médias
Use um ‘TextView’ (inicialmente vazio) para informar o resultado
Caso precise, use ‘AbsoluteLayout’ para posicionar melhor os componentes
![Page 123: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/123.jpg)
Dica!
No seu layout (xml), use o método ‘android:maxLenght’ para definir o tamanho máximo de caracteres no EditText
Use também o método ‘android:inputType’ para definir o tipo de entrada (Números)
![Page 124: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/124.jpg)
Melhorando o app!
Para evitar erros, defina os ‘EditText’ como ‘0’ inicialmente, usando setText();
![Page 125: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/125.jpg)
Melhorando o app!
Fazer com que apareça um ‘Dialog’ com o resultado na tela
![Page 126: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/126.jpg)
Melhorando o app!
Brincar com o Dialog, fazendo com que apareça uma mensagem diferente no botão, ao passar ou perder
![Page 127: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/127.jpg)
Melhorando o app
Faça com que ele calcule a média que você precisa numa prova final em caso de reprovação
Fórmula para nota mínima da finalfinalMinima = 12.5 – (1.5 * media)
![Page 128: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/128.jpg)
Voltando para o projeto Hello World!
Preferências
![Page 129: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/129.jpg)
Preferências
Como salvar dados para que eles possam seracessados da próxima vez que o app sejaexecutado?
SharedPreferences é uma forma conveniente desalvar pequenas quantidades de dados.
![Page 130: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/130.jpg)
Preferências
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);Editor editor = prefs.edit();editor.putString("texto", texto);editor.commit();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);String texto = prefs.getString("texto", "");
Salvando
Carregando
![Page 131: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/131.jpg)
Prática
Faça o app guardar o textoCarregue no onCreate e salve no onDestroy
Boa prática: use atributos static final para as chaves
![Page 132: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/132.jpg)
Intents
![Page 133: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/133.jpg)
Intents
São mensagens que seu programa envia para osistema para requisitar funcionalidades de outrosComponentes
Exemplo: uma Activity envia um Intent pararequisitar ao sistema que outra Activity seja aberta
Outro exemplo: uma Activity envia um Intent pararequisitar ao sistema que abra um navegador napágina www.google.com
![Page 134: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/134.jpg)
Abrindo outra Activity
Intent intent = new Intent(this, OutraActivity.class);startActivity(intent);
Pode ser chamado, por exemplo, ao clicar em um botão
A nova activity é “empilhada” sobre a atual
![Page 135: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/135.jpg)
Fechando a Activity
Usando o método ‘finish();’
Quando uma activity é fechada(desempilhada), o Sistema
mostra a Activity anterior, queestava abaixo da atual
A Activity é desempilhada para evitar empilhamentos
desnecessários, gerando alto consume de memória
![Page 136: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/136.jpg)
Prática
Aproveitando o seu projeto Hello World, crie uma nova Activity chamada OutraActivity.java
Na MainActivity.java, adicione um novo botão que ao ser clicado abre OutraActivity
Na OutraActivity adicione um botão que ao ser clicado feche a Activity
![Page 137: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/137.jpg)
Passando dados de uma Activity pra outra
Intent intent = new Intent(this, OutraActivity.class);intent.putExtra(“pi”, 3.14);startActivity(intent);
Bundle extras = getIntent().getExtras()if (extras != null) {float x = extra.getFloat(“pi”);}
MainActivity.java
OutraActivity.java
Pode ser chamado no onCreate();
![Page 138: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/138.jpg)
Retornando dados de uma Activity
Intent intent = new Intent(this, OutraActivity.class);startActivityForResult(intent, 1234);
Intent data = new Intent();data.putExtra(“pi”, 3.14);setResult(RESULT_OK, data);finish();
MainActivity.java
OutraActivity.java
MainActivity.java@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1234 && resultCode == RESULT_OK) {float pi = data.getFloatExtra(“pi”);
}}
![Page 139: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/139.jpg)
Exercitando
Adicione dois ‘TextView’ vazios em cada Activity
Faça com que nesses ‘TextView’ aparecam a quantidade de vezes que você trocou de Activity
Dessa forma:
![Page 140: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/140.jpg)
Prática
![Page 141: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/141.jpg)
Intents Implícitos
// Abrir navegadorIntent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com/"));startActivity(intent);
// Enviar mensagem (SMS)Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(android.content.Intent.EXTRA_TEXT, "Oi!");startActivity(intent);
![Page 142: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/142.jpg)
Intents Implícitos
Existem ainda vários outros tipos
ACTION_CALL -> Realiza chamadasIMAGE_CAPTURE -> Tira uma foto
![Page 143: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/143.jpg)
ListView
![Page 144: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/144.jpg)
ListView: Funcionamento
ListView
ArrayAdapter
![Page 145: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/145.jpg)
ListView
ListView listView = (ListView) findViewById(R.id.mylist);
listView.setAdapter(adapter);
![Page 146: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/146.jpg)
ListView
ListView lista = (ListView) findViewById(R.id.mylist);
String[] values = new String[] { “Jelly Bean”, “KitKat”, “Lollipop” };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, // layout de um itemvalues);lista.setAdapter(adapter);
Crie um novo projeto, adicione um ListView na Activity, coloque este código no onCreate, e observe o que acontece
![Page 147: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/147.jpg)
ListView: Interação
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Overridepublic void onItemClick(AdapterView<?> parent, View
view, int position, long id) {// Seu código aqui
}});
Coloque este código dentro do onCreate e coloque um “Toast” dentro do onItemClick
![Page 148: Introdução ao android - siecomp 2015.1](https://reader030.fdocuments.net/reader030/viewer/2022020116/55aac4931a28ab903e8b4628/html5/thumbnails/148.jpg)
Prática
Sistema para guardar quaisquer observações