Baixe o app para aproveitar ainda mais
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
Compartilhar