A maior rede de estudos do Brasil

Grátis
148 pág.
Apostila de Desenvolvimento Java para Dispositivos Móveis

Pré-visualização | Página 8 de 25

plano, em função de uma caixa de diálogo ou 
outra tela semitransparente ter sido aberta, ou seja, uma situação que não oculta totalmente a tela, 
esta entra no estado de onPause().
• No momento em que ocorre a desobstrução, a Activity continua após o evento onResume().
• No caso de uma nova tela ser aberta e ocultar totalmente a tela atual, dizemos que esta Activity 
entrou no estado de parada e executou o evento onStop().
• Neste caso, quando o usuário retorna à Activity que ficou “de baixo”, ela executa o evento onRes-
tart() e posteriormente o onStart().
• Finalmente, logo antes da Activity ser totalmente fechada, ocorre o evento onDestroy().
5.2 Eventos de clique em botões
Os cliques (ou melhor dizendo, toques) nos botões são as principais formas de programar ações em um 
aplicativo Android. Dizemos que ele é um evento e que ele será manipulado por um método dentro de uma 
classe Java (no caso, a Activity).
Definimos o nome do método que será disparado no toque de um botão por meio da sua propriedade 
onClick, dentro de um arquivo XML. Também pode ser designado por meio da interface gráfica, usando a 
janela de propriedades. No caso do XML, a configuração da propriedade é feita como exibido no Quadro 9.
Android: Desenvolvimento para Dispositivos Móveis
52
Quadro 9 – Exemplo de uso de configuração do evento onClick botão
 <Button
 android:id=”@+id/button1”
 android:layout_width=”wrap_content”
 android:layout_height=”wrap_content”
 android:layout_centerHorizontal=”true”
 android:layout_marginTop=”42dp”
 android:text=”Incluir” 
 android:onClick=”onClickIncluir”/>
Depois de configurado o nome do método na propriedade, o método para o evento deve ter exatamente 
o mesmo nome que foi especificado. Também é obrigatório que o método seja public com retorno vazio e 
que receba um objeto View como parâmetro, como mostra o exemplo no quadro 10.
Quadro 10 – Exemplo de método para evento onClick de um botão
public void onClickIncluir(View v) {
// Lógica para execução no clique do botão, como por exemplo
// procedimentos para inclusão de um cliente no banco de dados
}
5.3 ListActivity = Activity + ListView
Se você já deu uma boa olhada na palheta de widgets, pode ter visto um componente chamado ListView. 
Ele é bastante útil para uma série aplicativos, pois torna muito fácil a exibição de dados em listas. Ele está 
dentro da categoria Composite da palheta (veja a Figura 36).
Android: Desenvolvimento para Dispositivos Móveis
53
Figura 36: Localização do widget ListView na palheta do Eclipse
Você pode adicionar este ListView a uma tela de layout, conectá-lo ao código Java com findViewById() 
e depois programar o widget para exibir os dados. Mas há um jeito ainda mais prático e com mais opções: 
usar a ListActivity.
Trata-se de uma Activity especial, que já “sabe” como lidar com um ListView. Na verdade, ela traz um 
ListView nela embutido e poderia até mesmo ser usada sem um arquivo de layout, mas vamos usá-la junto 
do activity_main.xml para que possamos customizá-lo.
Vamos supor que você está querendo criar uma lista de compras. O primeiro passo é criar um layout com 
um ListView para exibição da lista, assim como um EditText para o usuário escrever um nome de um item e 
um botão com a ação de incluí-lo. Um exemplo de layout dessa maneira pode ser visto no Quadro 11.
Android: Desenvolvimento para Dispositivos Móveis
54
Quadro 11 – Exemplo de arquivo de layout com ListView, EditText e Button.
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
 xmlns:tools=”http://schemas.android.com/tools”
 android:layout_width=”match_parent”
 android:layout_height=”match_parent”
 android:paddingBottom=”@dimen/activity_vertical_margin”
 android:paddingLeft=”@dimen/activity_horizontal_margin”
 android:paddingRight=”@dimen/activity_horizontal_margin”
 android:paddingTop=”@dimen/activity_vertical_margin”
 tools:context=”.MainActivity” >
 <EditText
 android:id=”@+id/edtProduto”
 android:layout_width=”wrap_content”
 android:layout_height=”wrap_content”
 android:layout_alignParentLeft=”true”
 android:layout_alignParentTop=”true”
 android:layout_toLeftOf=”@+id/button1”
 android:ems=”10” />
 <Button
 android:id=”@+id/button1”
 android:layout_width=”wrap_content”
 android:layout_height=”wrap_content”
 android:layout_alignParentRight=”true”
 android:layout_alignTop=”@+id/edtProduto”
 android:onClick=”onClickAdicionar”
 android:text=”Adicionar” />
 <ListView
 android:id=”@android:id/list” 
 android:layout_width=”match_parent”
 android:layout_height=”wrap_content”
 android:layout_alignLeft=”@+id/edtProduto”
 android:layout_below=”@+id/button1”
 android:layout_marginTop=”25dp” >
 </ListView>
</RelativeLayout>
Android: Desenvolvimento para Dispositivos Móveis
55
Os pontos principais neste layout são os seguintes:
• Colocamos no EditText, em que será digitado o item id edtProduto, para identificá-lo corretamente 
no código Java;
• No Button que vai realizar a inclusão do item digitado, configuramos seu evento onClick para dis-
parar o método onClickAdicionar – este será o nome que deveremos usar na classe Java.
• No ListView, uma configuração fundamental para que ele possa ser usado na ListActivity: seu id 
tem que ser, obrigatoriamente, @android:id/list.
Na classe Java, teremos código para:
• Inicializar a lista com alguns valores (faremos isso no evento onCreate);
• Incluir um item na lista quando o usuário tocar no botão (isso será feito na programação do método 
onClickAdicionar);
• Excluir um item da lista quando o mesmo for tocado (conseguiremos fazer isso com o uso de um 
evento especial da ListActivity, chamado onListItemClick).
Para conseguir cumprir esses procedimentos, altere o código da MainActivity.java do seu projeto para o 
exibido no Quadro 12.
Quadro 12 – Código para MainActivity.java com suporte a ListView
package posjava.android.listadecompras;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends ListActivity {
 
 EditText edtProduto;
 ArrayList<String> lista;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 
Android: Desenvolvimento para Dispositivos Móveis
56
 String[] produtos = new String[]{“Arroz”, “Feijão”, “Batata”};
 lista = new ArrayList<String>();
 
 for (int i = 0; i < produtos.length; ++i) {
 lista.add(produtos[i]);
 }
 
 ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,
 android.R.layout.simple_list_item_1, lista);
 setListAdapter(adaptador);
 
 edtProduto = (EditText)findViewById(R.id.edtProduto);
 }
 
 public void onClickAdicionar(View v) {
 String produto = edtProduto.getText().toString();
 lista.add(produto);
 ArrayAdapter<String> adaptador = (ArrayAdapter<String>)getListAdapter();
 adaptador.notifyDataSetChanged();
 edtProduto.setText(“”);
 }
 
 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
 Toast.makeText(this, “Você selecionou: “ + lista.get(position), Toast.LENGTH_SHORT).show();
 }
}
• O primeiro passo a ser feito é mudar a superclasse de MainActivity de ActionBarAc-
tivity para ListActivity. Basta trocar o nome da superclasse