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.


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