introdução ao android - siecomp 2015.1

148
Introdução ao Android Afonso da Silva Machado 3 de Março de 2015

Upload: afonso-machado

Post on 19-Jul-2015

287 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Introdução ao android - siecomp 2015.1

Introdução ao Android

Afonso da Silva Machado

3 de Março de 2015

Page 2: Introdução ao android - siecomp 2015.1

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

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

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

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

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

Um sistema operacional para Tablets

Page 8: Introdução ao android - siecomp 2015.1

E smartphones?

Page 9: Introdução ao android - siecomp 2015.1

#sqn

Page 10: Introdução ao android - siecomp 2015.1

Android Wear e Android TV

Page 11: Introdução ao android - siecomp 2015.1

Diferentes Smartphones

Page 12: Introdução ao android - siecomp 2015.1

E em breve: Android Auto

Page 13: Introdução ao android - siecomp 2015.1

Anunciado para Grandes Marcas

http://www.android.com/

Page 14: Introdução ao android - siecomp 2015.1

Várias versões

Page 15: Introdução ao android - siecomp 2015.1

Android 5.0: Lollipop

Page 16: Introdução ao android - siecomp 2015.1

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

Versões

http://developer.android.com/about/dashboards/index.html

Page 18: Introdução ao android - siecomp 2015.1

Google play store, filmes, músicas...

Page 19: Introdução ao android - siecomp 2015.1

Android Studio (ou Eclipse?)

http://developer.android.com/sdk/index.html

Page 20: Introdução ao android - siecomp 2015.1

Vamos ao que Interessa ;)

Page 21: Introdução ao android - siecomp 2015.1

Mas e o Eclipse?

Page 22: Introdução ao android - siecomp 2015.1

Java + Um bando de coisa

Chato?

Quantos gostam de java?

Quantos gostam de eclipse?

Page 23: Introdução ao android - siecomp 2015.1

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

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
Page 26: Introdução ao android - siecomp 2015.1

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

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

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

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
Page 31: Introdução ao android - siecomp 2015.1

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

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

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

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

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

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

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

Vamos explorar

•Abra o Android Studio.

$ cd android-studio/

$ cd bin/

$ sh studio.sh

Page 39: Introdução ao android - siecomp 2015.1

Criando um projeto

Page 40: Introdução ao android - siecomp 2015.1

Criando um projeto

Page 41: Introdução ao android - siecomp 2015.1

Criando um projeto

Page 42: Introdução ao android - siecomp 2015.1

Isso é pra mais tarde ;)

Page 43: Introdução ao android - siecomp 2015.1

Enquanto Esperamos...

Page 44: Introdução ao android - siecomp 2015.1

1. Usando seu aparelho Android

2. Usando um Android Virtual Device

Testando seus apps

Page 45: Introdução ao android - siecomp 2015.1

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

•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

Usando um Android Virtual Device (AVD)

Testando seus apps

Page 48: Introdução ao android - siecomp 2015.1

•É 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

•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

•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

Barra principal

Debug

Compilar e Executar

Dispositivos Virtuais

Android SDK Tools

Monitoramento do Dispositivo

Page 52: Introdução ao android - siecomp 2015.1

Procedimentos Iniciais

Dispositivos Virtuais

Android SDK Tools

Monitoramento do Dispositivo

Page 53: Introdução ao android - siecomp 2015.1

Prática

Criar e executar um AVD

Verificar pacotes do Android SDK

Page 54: Introdução ao android - siecomp 2015.1

Enquanto seu AVD não abre...

Page 55: Introdução ao android - siecomp 2015.1

Vamos à alguns conceitos

Page 56: Introdução ao android - siecomp 2015.1

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

Arquitetura do Android

Page 58: Introdução ao android - siecomp 2015.1

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

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

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

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

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
Page 64: Introdução ao android - siecomp 2015.1

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

Seu AVD já abriu?

Page 66: Introdução ao android - siecomp 2015.1

Se sim, vamos brincar com ele.

Page 67: Introdução ao android - siecomp 2015.1

DDMS: Dalvik Debug Monitor Server

Abra o Monitoramento do Dispositivo

Page 68: Introdução ao android - siecomp 2015.1

•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

•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

Deixe seu AVD aberto e vamos pra outra parte

Page 71: Introdução ao android - siecomp 2015.1

Lembram de quando eu falei sobre “Activity”?

Page 72: Introdução ao android - siecomp 2015.1

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

•Crie a sua Activity

Prática

Page 74: Introdução ao android - siecomp 2015.1

Hello world!

Page 75: Introdução ao android - siecomp 2015.1

Estrutura de um Projeto no Android Studio

Page 76: Introdução ao android - siecomp 2015.1

Perspectivas de Desenvolvimento

Projeto Pacotes Android

Page 77: Introdução ao android - siecomp 2015.1

Estrutura do projetoNome do projeto(mesmo nome do diretório)

Page 78: Introdução ao android - siecomp 2015.1

Estrutura do projetoPasta com arquivos de

configuração da IDE

Page 79: Introdução ao android - siecomp 2015.1

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

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

Estrutura do projeto

Pasta com as bibliotecas utilizadasContém os arquivos *.jar

Page 82: Introdução ao android - siecomp 2015.1

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

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

Estrutura do projeto

Arquivos de recursos do aplicativoLayouts, telas, strings, ícones do app

Page 85: Introdução ao android - siecomp 2015.1

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

Estrutura do projeto

Arquivo de configuração do módulo appHerdado da infraestrutura do IntelliJ

Page 87: Introdução ao android - siecomp 2015.1

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

Estrutura do projeto

Pacote de arquivos do Gradle

Page 89: Introdução ao android - siecomp 2015.1

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

Estrutura do projeto

Arquivo de propriedades do GradleConfigurações específicas do gradle (gerado)

Page 91: Introdução ao android - siecomp 2015.1

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

Estrutura do projeto

Informações locais (SDK)Informa a localização do Android SDK (gerado)

Page 93: Introdução ao android - siecomp 2015.1

Estrutura do projeto

Arquivo de configuração do projetoHerdado da infraestrutura do IntelliJ

Page 94: Introdução ao android - siecomp 2015.1

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

Estrutura do projeto

Bibliotecas externasLista de bibliotecas externas ao projeto (SDK, JDK, etc)

Page 96: Introdução ao android - siecomp 2015.1

Layout

Page 97: Introdução ao android - siecomp 2015.1

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

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

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

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

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

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

Compilando seu projeto

Make Project Run

Page 104: Introdução ao android - siecomp 2015.1

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

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

Interação

Page 107: Introdução ao android - siecomp 2015.1

Adicione um botão

Page 108: Introdução ao android - siecomp 2015.1

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

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

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

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

Toast (mensagem na tela)

Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();

Page 113: Introdução ao android - siecomp 2015.1

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

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

Práticazinha

• Modifique o texto do Botão ao tocar nele

Page 116: Introdução ao android - siecomp 2015.1

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

Ciclo de vida de uma Activity

Page 118: Introdução ao android - siecomp 2015.1

Ciclo de vida de uma Activity

Page 119: Introdução ao android - siecomp 2015.1

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

Prática

Rotacione o dispositivo (Ctrl + F11) e veja quais métodos são chamados.

Page 121: Introdução ao android - siecomp 2015.1

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

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

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

Melhorando o app!

Para evitar erros, defina os ‘EditText’ como ‘0’ inicialmente, usando setText();

Page 125: Introdução ao android - siecomp 2015.1

Melhorando o app!

Fazer com que apareça um ‘Dialog’ com o resultado na tela

Page 126: Introdução ao android - siecomp 2015.1

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

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

Voltando para o projeto Hello World!

Preferências

Page 129: Introdução ao android - siecomp 2015.1

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

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

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

Intents

Page 133: Introdução ao android - siecomp 2015.1

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

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

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

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

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

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

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

Prática

Page 141: Introdução ao android - siecomp 2015.1

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

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

ListView

Page 144: Introdução ao android - siecomp 2015.1

ListView: Funcionamento

ListView

ArrayAdapter

Page 145: Introdução ao android - siecomp 2015.1

ListView

ListView listView = (ListView) findViewById(R.id.mylist);

listView.setAdapter(adapter);

Page 146: Introdução ao android - siecomp 2015.1

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

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

Prática

Sistema para guardar quaisquer observações