Buscar

Aula 2 Activity

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Roteiro 
1. Entendendo uma Activity 
2. Seu ciclo de vida 
3. Chamando outra Activity 
4. Transformando nossa tela em uma lista de 
itens 
5. O método finish() 
6. Rápido feedback com a classe Toast 
7. ListActivity 
1.Entendendo uma Activity 
• Activity em Android são classes que devem 
herdar da classe android.app.Activity, ou 
alguma subclasse dessa. 
• Representa uma tela da aplicação. 
• Cada Activity é responsável por controlar os 
eventos da tela. 
 
1.Entendendo uma Activity 
• Toda classe Activity deve implementar o 
método onCreate(bundle). 
– Método responsável por realizar a inicialização 
necessária para executar a aplicação. 
• Uma das atribuições do método onCreate 
das Activities é definir a interface gráfica 
(layout) da tela. 
– Através do método setContentView(View) 
 
1.Entendendo uma Activity 
• Toda Activity deve ser obrigatoriamente 
declarada no arquivo AndroidManifest.xml 
 
2.Seu Ciclo de Vida 
• Gerenciado pelo Sistema Operacional 
• API fornece métodos para executar ações 
durante as etapas do ciclo de vida do Android. 
• Cada Activity que é iniciada é inserida no topo 
de uma pilha 
2.Seu Ciclo de Vida 
• Métodos principais: 
 
2.Seu Ciclo de Vida 
• Segundo a documentação do Android há três 
subníveis do ciclo de vida principal: 
– Entire lifetime; 
– Visible lifetime; 
– Foreground lifetime; 
 
2.Seu Ciclo de Vida 
• Entire lifetime: 
– Ciclo de vida completo entre o início e a 
destruição da Activity (onCreate → onDestroy); 
• Visible lifetime: 
– A Activity está iniciada, pode estar no topo da 
pilha ou temporariamente em segundo plano; 
• Foreground lifetime: 
– A Activity está no topo da pilha e interagindo com 
o usuário; 
 
2.Seu Ciclo de Vida 
• ATENÇÃO: 
– Toda vez que uma Activity está pausada ou 
parada, o sistema operacional pode decidir 
encerrar o processo para liberar recursos e 
memória para as demais aplicações. 
 
2.Seu Ciclo de Vida 
Exercitar o ciclo de vida de uma 
Activity 
• Vamos verificar o Ciclo de vida através da execução de 
uma aplicação: 
1. Crie a aplicação; 
2. Vamos realizar 4 testes para verificar as saídas do LogCat; 
3. Teste a aplicação da seguinte forma: 
• Teste 1: 
– Inicie a aplicação 
• Teste 2: 
– Com a aplicação iniciada aperte o botão voltar 
• Teste 3: 
– Inicie a aplicação novamente 
– Aperte o botão Home 
• Teste 4: 
– Inicie a aplicação novamente. 
 
 
Exemplo... 
• public class ExemploCicloVida extends Activity { 
• protected static final String CATEGORIA = "livro"; 
 
• public void onCreate(Bundle icicle) { 
• super.onCreate(icicle); 
• Log.i(CATEGORIA, getClassName() + ".onCreate() chamado: " + icicle); 
 
• TextView t = new TextView(this); 
• t.setText("Exemplo do ciclo de vida.\nConsulte os logs no LogCat."); 
• setContentView(t); 
• } 
• protected void onStart() { 
• super.onStart(); 
• Log.i(CATEGORIA, getClassName() + ".onStart() chamado."); 
• } 
• protected void onRestart() { 
• super.onRestart(); 
• Log.i(CATEGORIA, getClassName() + ".onRestart() chamado."); 
• } 
• protected void onResume() { 
• super.onResume(); 
• Log.i(CATEGORIA, getClassName() + ".onResume() chamado."); 
• } 
• protected void onPause() { 
• super.onPause(); 
• Log.i(CATEGORIA, getClassName() + ".onPause() chamado."); 
• } 
• protected void onStop() { 
• super.onStop(); 
• Log.i(CATEGORIA, getClassName() + ".onStop() chamado."); 
• } 
• protected void onDestroy() { 
• super.onDestroy(); 
• Log.i(CATEGORIA, getClassName() + ".onDestroy() chamado."); 
• } 
• private String getClassName() { 
• //Retorna o nome da classe sem o pacote 
• String s = getClass().getName(); 
• return s.substring(s.lastIndexOf(".")); 
• } 
• } 
3.Chamando outra Activity 
• Para Abrir uma nova tela no Android 
precisamos do seguinte código: 
 
14 
Intent it = new Intent(this,Tela2.class); 
it.putExtra("msg", "Olá"); 
startActivity(it); 
3.Chamando outra Activity 
• Analisando o código: 
 
15 
Intent it = new Intent(this,Tela2.class); 
 
it.putExtra("msg", "Olá"); 
 
startActivity(it); 
Esta linha cria uma intenção do Android. A intenção de abrir uma nova Tela! 
Lembre-se que é o Android quem cuida do ciclo de vida da Activity. 
Esta linha adiciona um parâmetro String que 
será passado para a próxima tela! Esta linha envia uma solicitação 
ao Android, isto é, a solicitação 
para ele inicializar uma nova 
Activity. 
3.Chamando outra Activity 
• Para abrir uma nova tela precisamos saber 
qual o momento certo de solicitá-la ao 
Android. 
– Faremos isso no click de um botão: 
– Faça sua Activity implementar 
View.OnClickListener. 
16 
public void onCreate(Bundle icicle) { 
 super.onCreate(icicle); 
 Button b = new Button(this); 
 b.setText("Abre Tela2"); 
 b.setOnClickListener(this); 
 setContentView(b); 
} 
3.Chamando outra Activity 
• Para abrir uma nova tela precisamos saber 
qual o momento certo de solicitá-la ao 
Android. 
– Faremos isso no click de um botão: 
17 
public void onClick(View v) { 
 Intent it = new Intent(this,Tela2.class); 
 it.putExtra("chave", "mensagem teste"); 
 startActivity(it); 
} 
Ou crie a interface gráfica com XML... 
3.Chamando outra Activity 
• Crie uma nova Activity! 
• Lembre-se que toda nova Activity deve ser 
adicionada ao arquivo AndroidManifest.xml 
• Se você criar a Nova Activity pela ferramenta 
do Eclipse, ela já adiciona a configuração no 
XML 
– Veja a seguir: 
18 
3.Chamando outra Activity 
19 
4.Transformando nossa tela em uma 
lista de itens 
• Como transformar nossa tela em uma lista de 
itens? 
20 
4.Transformando nossa tela em uma 
lista de itens 
• Vamos precisar utilizar o componente 
ListView! 
– Componente responsável por criar uma lista de 
itens em uma tela 
• Para isso vamos na verdade utilizar uma 
Activity diferente: 
– ListActivity 
• Antes de prosseguir com nossa lista de itens 
vamos conhecer 2 novas técnicas! 
21 
5.Forçando o fechamento 
• Para forçar o fechamento de uma Activity você 
pode invocar o método finish() a 
qualquer momento! 
• O método finish() encerra o ciclo de vida de 
uma Activity. 
• Seria o mesmo que chamar o método 
onDestroy(). 
• Também seria o mesmo que apertar o voltar 
do seu dispositivo! 
22 
5.Forçando o fechamento 
• Você pode invocar o finish() a qualquer 
momento. 
• É importante entender que o método finish() 
pode ou não sair da aplicação. 
23 
A1 A2 finish() A2 
A1 A1 A1 
A2 
A1 
A2 
5.Forçando o fechamento 
• Você pode criar um botão no seu layout que 
saia da tela quando pressionado: 
24 
Layout do botão 
Tratamento do botão 
6.Toast 
• O Toast fornece um feedback simples e rápido ao 
usuário em uma pequena janela. 
• Essa janela é exibida na quantidade de espaço 
necessário para a mensagem que lhe foi 
determinada, permanecendo visível por um 
tempo limite. 
• Este recurso não tem interação com o usuário, 
serve somente para dar informações rápidas. 
– Para interações há recursos como Alertas e 
Notificações. 
25 
6.Toast 
• Vamos utilizar a construção básica do Toast 
para produzir uma nota como mostra a figura 
abaixo: 
26 
6.Toast 
• Para instanciar o objeto, utilizaremos o método: 
– makeToast(contexto, mensagem e duração) 
• A duração é uma constante existente na classe 
Toast, tendo como opção LENGTH_SHORT para 
curto tempo ou LENGTH_LONG para longo. 
• Para exibir vamos chamar ométodo show(). 
• A seguir o exemplo de construção de uma 
simples mensagem. 
27 
6.Toast 
• Exemplo básico de exibição de um Toast: 
28 
Context contexto = getApplicationContext(); 
String texto = "exemplo toast"; 
int duracao = Toast.LENGTH_SHORT; 
Toast toast = Toast.makeText(contexto,texto,duracao); 
toast.show(); 
6.Toast 
• Podemos encurtar o código do slide anterior e 
invocar o Toast em uma única linha! 
• Chamando em uma única linha: 
29 
Toast.makeText(getApplicationContext(), “Exemplo 
Toast”, Toast.LENGTH_SHORT).show(); 
7.ListActivity 
• Finalmente... 
• Transformando nossa Activity em uma lista de 
itens! 
• Para isso não estenderemos de Activity, mas 
sim de ListActivity: 
30 
7.ListActivity 
• O ListActivity já possui um componente 
ListView nele e por conta disso não é 
necessário informar o método 
setContentView(). 
• É literalmente como se o fato de você 
estender ListActivity você recebesse de 
presente um layout pronto no formato de um 
“esqueleto” uma lista! 
31 
ListActivity 
• E não para por aí... 
• O fato de estendermos ListActivity ganhamos 
de presente o método que detecta o evento 
do click em um item da lista! 
– onListItemClick 
• Resumo dos ganhos: 
1. Componente pronto 
2. Layout no formato de uma lista 
3. Tratamento do evento certo 
32 
ListActivity 
• Passos para a construção da aplicação 
exemplo: 
1. A classe deve estender de um ListAcitity. 
2. O método onListItemClick foi criado para que 
você possa identificar em qual item do seu array 
o usuário clicou, e em cima disto você pode 
efetuar a programação que for necessária. 
3. Um caso interessante é que nesse exemplo não 
tem a necessidade de se criar um layout em 
XML. 
33 
7.ListActivity 
 
• OBSERVAÇÃO: 
• Vamos utilizar um layout padrão para listas já 
disponibilizado pelo android na seguinte 
classe: 
– android.R.layout.<nome_do_layout> 
34 
7.ListActivity 
• Exemplo 
7.ListActivity 
• Continuação 
Referências 
• Veja mais em: 
– http://developer.android.com/guide/topics/ui/not
ifiers/toasts.html 
– http://www.devmedia.com.br/exibindo-
mensagens-no-android-com-a-classe-toast/26668 
– http://escoladeandroid.blogspot.com.br/2011/10
/trabalhando-com-listview-parte-1.html 
– http://escoladeandroid.blogspot.com.br/2011/11
/trabalhando-com-listview-parte-2.html 
 
37

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes