Android - Exemplo de ListView

De Aulas

Links relacionados: Programação para Dispositivos Móveis

Interface e Elemento ListView

  • Crie um novo projeto do tipo Empty Activity.
  • Retirar o TextView do Hello World.
  • Insirir um ListView no activity_main.xml:
 1<?xml version="1.0" encoding="utf-8"?>
 2<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3    xmlns:app="http://schemas.android.com/apk/res-auto"
 4    xmlns:tools="http://schemas.android.com/tools"
 5    android:layout_width="match_parent"
 6    android:layout_height="match_parent"
 7    tools:context=".MainActivity">
 8
 9    <ListView
10        android:id="@+id/listView"
11        android:layout_width="368dp"
12        android:layout_height="495dp"
13        android:layout_marginBottom="8dp"
14        android:layout_marginEnd="8dp"
15        android:layout_marginStart="8dp"
16        android:layout_marginTop="8dp"
17        app:layout_constraintBottom_toBottomOf="parent"
18        app:layout_constraintEnd_toEndOf="parent"
19        app:layout_constraintStart_toStartOf="parent"
20        app:layout_constraintTop_toTopOf="parent" />
21</android.support.constraint.ConstraintLayout>
  • Adicione a string title_dialog em res/values/strings.xml:
1<resources>
2    <string name="app_name">My List View</string>
3    <string name="title_dialog">Alert!</string>
4    <string name="button_ok">OK</string>
5    <string name="dialog_message">You selected %1$s on position %2$d.</string>
6</resources>

Classe Principal - MainActivity

  • Altere a classe MainActivity.java:
 1package com.example.saulo.mylistview;
 2
 3import android.os.Bundle;
 4import android.support.v7.app.AlertDialog;
 5import android.support.v7.app.AppCompatActivity;
 6import android.view.View;
 7import android.widget.AdapterView;
 8import android.widget.ArrayAdapter;
 9import android.widget.ListView;
10
11import java.util.ArrayList;
12import java.util.Arrays;
13
14public class MainActivity extends AppCompatActivity {
15
16    @Override
17    protected void onCreate(Bundle savedInstanceState) {
18        super.onCreate(savedInstanceState);
19        setContentView(R.layout.activity_main);
20
21        ListView listView = findViewById(R.id.listView);
22        String[] values = new String[]{"Android", "iPhone", "WindowsMobile",
23                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
24                "Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux",
25                "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2",
26                "Android", "iPhone", "WindowsMobile"};
27        ArrayList<String> list = new ArrayList<>(Arrays.asList(values));
28        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
29                android.R.layout.simple_list_item_1, list);
30        listView.setAdapter(adapter);
31        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
32            @Override
33            public void onItemClick(AdapterView<?> parent, View view,
34                                    int position, long id) {
35                dialog(getString(R.string.title_dialog),
36                        getString(R.string.dialog_message,
37                                parent.getItemAtPosition(position), position));
38            }
39        });
40    }
41
42    public void dialog(String title, String content) {
43        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
44        builder.setTitle(title);
45        builder.setMessage(content);
46        builder.setNeutralButton(getString(R.string.button_ok), null);
47        builder.show();
48    }
49}
  • Execute o aplicativo.

Atividades

Crie uma Activity com um EditText, um Button e uma listView. O comportamento do aplicativo deve ser o seguinte:

  • A ListView inicia vazia.
  • Quando o botão for pressionado, o texto que está no EditText é adicionado à ListView.
  • Quando você clica em um item da ListView, mostra uma mensagem na tela com o valor do item selecionado.
  • Quando você segurar o dedo pressionado em cima de algum item da ListView, virá uma mensagem na tela perguntando se você quer apagar o item. Caso você clicar em OK, o item será excluído da ListView, caso você clicar em Cancel, o item não será excluído.