Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 07 - Interfaces Gráficas III

ListView

O ListView é o componente responsável por prover ao usuário listas de dados, organizadas a partir de listas presentes no código da aplicação. O ListView carrega os dados através de um Adapter, que pode ser implementado por completo, em uma nova classe, ou apenas utilizar uma das interfaces já implementadas. Nessa aula, utilizaremos a interface já implementada ArrayAdapter, que é capaz de carregar itens a partir de um array.

Outro ponto importante dos ListViews é que, além do próprio componente ListView, um layout deve ser definido para os itens que estarão presentes naquela lista, ou seja, o layout de cada linha que será exibida. É importante notar que no ArrayAdapter, a interface passada deve conter apenas um ListView onde o ArrayAdapter irá colocar as informações. Vejamos as Listagens 1 e 2, que indicam a declaração do ListView e do list_item.xml, respectivamente.

x
1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:layout_width="fill_parent"
4
    android:layout_height="fill_parent"
5
    android:orientation="vertical" >
6
7
<ListView
8
    android:id="@+id/listView1"
9
    android:layout_width="match_parent"
10
    android:layout_height="wrap_content" >
11
</ListView>
12
13
</LinearLayout>
Listagem 1 – Declaração do arquivo activity_main.xml, contendo o ListView.
6
1
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
2
    android:id="@+id/listView1"
3
    android:layout_width="fill_parent"
4
    android:layout_height="wrap_content"
5
    android:padding="10dip"
6
    android:textSize="15dip"/>
Listagem 2 – Declaração do arquivo list_item.xml, contendo o formato dos itens do ListView.

Com os dois XMLs declarados podemos, então, criar o Adapter e colocá-lo como responsável pelo layout dos itens da lista. Para fazermos isso, devemos fazer como mostrado na Listagem 3. Perceba que os dados carregados nesse ListView serão carregados a partir de uma lista constante, definida no início do arquivo.

31
1
package br.ufrn.imd.aula07;
2
3
import android.app.Activity;
4
import android.os.Bundle;
5
import android.view.View;
6
import android.widget.AdapterView;
7
import android.widget.ArrayAdapter;
8
import android.widget.ListView;
9
import android.widget.TextView;
10
import android.widget.Toast;
11
12
public class MainActivity extends Activity {
13
    static final String[ ] PAISES = new String[ ] {
14
            "Argentina", "Brasil", "França", "Itália", "Alemanha", "Bélgica", "Inglaterra", "Nova Zelândia"};
15
    @Override
16
    public void onCreate(Bundle savedInstanceState) {
17
        super.onCreate(savedInstanceState);
18
        setContentView(R.layout.activity_main);
19
        ListView lv = (ListView) findViewById(R.id.listView1);
20
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, PAISES);
21
        lv.setAdapter(adapter);
22
23
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
24
            @Override
25
            public void onItemClick(AdapterView<?> pai, View view, int posicao, long id) {
26
                Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
27
                        Toast.LENGTH_SHORT).show();
28
            }
29
        });
30
    }
31
}
Listagem 3 – Activity implementando a ListView

Perceba também que na Listagem 3 há a declaração de um comportamento para o ItemClickListener. Ao definir esse método, o ListView passa a ter um comportamento para responder a cliques em seus itens. Funciona como se cada item fosse um botão e, ao ser tocado, invoca esse método. É importante saber que é possível obter qual item da lista foi tocado (através do parâmetro posição) e interagir com a View que foi tocada (através do view). Isso pode ser utilizado, como no exemplo, para obter alguma informação do item quando o mesmo é tocado. No exemplo, um Toast é exibido com o texto referente ao elemento da linha tocada. Na Figura 1, podemos ver o resultado dos códigos exemplo e também um Toast sendo exibido.

Figura 01 - ListView dos países
ListView dos países

Versão 5.3 - Todos os Direitos reservados