Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách xóa item khỏi ListView khi click trên Android

Giới thiệu

Ví dụ này trình bày cách xóa một mục (item) khỏi ListView khi người dùng nhấn vào mục đó, sử dụng ArrayAdapter và cập nhật giao diện tự động.

Các bước thực hiện

Bước 1: Tạo dự án mới

Android Studio → File → New Project → điền thông tin → tạo dự án.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Bước 3: Logic chính (src/MainActivity.java)

package com.example.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;

public class MainActivity extends Activity {

    ListView listView;
    ArrayAdapter<String> adapter;
    ArrayList<String> dataList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.list);
        dataList = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            dataList.add("Item " + i);
        }

        adapter = new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, dataList);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // Xóa item tại vị trí được click
                dataList.remove(position);
                // Cập nhật giao diện
                adapter.notifyDataSetChanged();
            }
        });
    }
}

Sửa lỗi ví dụ gốc: Code gốc nhầm lẫn giữa "xóa" và "cập nhật thành 100". Đoạn code trên thực hiện đúng yêu cầu: xóa item khi click.

Bước 4: Chạy ứng dụng

Kết nối thiết bị, nhấn Run. Danh sách hiển thị 10 item. Nhấn vào item bất kỳ → item đó biến mất, các item còn lại tự động co lại.

Cách xóa item khỏi ListView khi click trên Android

Cách xóa item khỏi ListView khi click trên Android

Mở rộng

  • Thêm hộp thoại xác nhận trước khi xóa (AlertDialog).
  • Sử dụng RecyclerView + ItemTouchHelper cho vuốt để xóa (swipe-to-dismiss).
  • Lưu trạng thái danh sách vào SharedPreferences hoặc database để giữ lại sau khi tắt app.