Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธิลบรายการจาก ListView แบบไดนามิกเมื่อคลิก

ภาพรวม

ตัวอย่างนี้แสดงวิธีการลบรายการออกจาก ListView แบบไดนามิกเมื่อผู้ใช้คลิกที่รายการ

ขั้นตอนการสร้าง

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

เปิด Android Studio ไปที่ File → New Project และกรอกข้อมูลที่จำเป็น

ขั้นตอนที่ 2: ออกแบบ Layout (res/layout/activity_main.xml)

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

ขั้นตอนที่ 3: เขียนโค้ดหลัก (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;

public class MainActivity extends Activity {
    ArrayAdapter<String> adapter = null;
    String[] arry;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ListView view = findViewById(R.id.list);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getStringArrayList());
        view.setAdapter(adapter);
        
        view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // ลบรายการที่ตำแหน่ง position
                ArrayList<String> list = new ArrayList<>();
                for (String s : arry) {
                    list.add(s);
                }
                list.remove(position);
                arry = list.toArray(new String[0]);
                adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, arry);
                view.setAdapter(adapter);
            }
        });
    }

    private String[] getStringArrayList() {
        arry = new String[10];
        for (int i = 0; i < 10; i++) {
            arry[i] = String.valueOf(i);
        }
        return arry;
    }
}

การทำงาน

เมื่อคลิกที่รายการใดรายการหนึ่ง รายการนั้นจะถูกลบออกจาก ListView ทันที