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

วิธีลบข้อมูลทั้งหมดจาก ArrayList สำหรับ ListView ใน Android

ตัวอย่างนี้สาธิตวิธีการลบข้อมูลทั้งหมดจาก ArrayList เพื่อใช้กับ ListView ใน Android

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

เปิด Android Studio ไปที่ File → New Project แล้วกรอกรายละเอียดที่จำเป็นเพื่อสร้างโปรเจกต์ใหม่

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

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

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:hint="Enter Name"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/save"
            android:text="Save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/refresh"
            android:text="Refresh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/delete"
            android:text="Delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/deleteall"
            android:text="Delete ALL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

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

</LinearLayout>

ในโค้ดด้านบน เรามี EditText สำหรับชื่อ เมื่อผู้ใช้กดปุ่ม Save ข้อมูลจะถูกเก็บใน ArrayList กดปุ่ม Delete All เพื่อลบข้อมูลทั้งหมดสำหรับ ListView

ขั้นตอนที่ 3: เขียนโค้ด MainActivity.java

package com.example.andy.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    Button save, refresh;
    EditText name;
    ArrayAdapter arrayAdapter;
    private ListView listView;
    ArrayList array_list;

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

        array_list = new ArrayList();
        name = findViewById(R.id.name);
        listView = findViewById(R.id.listView);

        // ปุ่ม Refresh
        findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                arrayAdapter.notifyDataSetChanged();
                listView.invalidateViews();
                listView.refreshDrawableState();
            }
        });

        // ปุ่ม Delete All - ลบข้อมูลทั้งหมด
        findViewById(R.id.deleteall).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (array_list.size() > 0) {
                    if (!name.getText().toString().isEmpty()) {
                        array_list.clear(); // ลบข้อมูลทั้งหมด
                        arrayAdapter = new ArrayAdapter(MainActivity.this, 
                                android.R.layout.simple_list_item_1, array_list);
                        listView.setAdapter(arrayAdapter);
                        Toast.makeText(MainActivity.this, "deleted all", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(MainActivity.this, "There is no element to delete", Toast.LENGTH_LONG).show();
                }
            }
        });

        // ปุ่ม Delete - ลบรายการเฉพาะ
        findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (array_list.size() > 0) {
                    if (!name.getText().toString().isEmpty()) {
                        array_list.remove(name.getText().toString());
                        arrayAdapter = new ArrayAdapter(MainActivity.this, 
                                android.R.layout.simple_list_item_1, array_list);
                        listView.setAdapter(arrayAdapter);
                        Toast.makeText(MainActivity.this, "deleted", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(MainActivity.this, "There is no element to delete", Toast.LENGTH_LONG).show();
                }
            }
        });

        // ปุ่ม Save
        findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!name.getText().toString().isEmpty()) {
                    array_list.add(name.getText().toString());
                    arrayAdapter = new ArrayAdapter(MainActivity.this, 
                            android.R.layout.simple_list_item_1, array_list);
                    listView.setAdapter(arrayAdapter);
                    Toast.makeText(MainActivity.this, "Inserted", Toast.LENGTH_LONG).show();
                } else {
                    name.setError("Enter NAME");
                }
            }
        });
    }
}

การทดสอบแอปพลิเคชัน

เชื่อมต่ออุปกรณ์ Android จริงกับคอมพิวเตอร์ ใน Android Studio เปิดไฟล์ Activity และคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณ แล้วตรวจสอบหน้าจอเริ่มต้น

วิธีลบข้อมูลทั้งหมดจาก ArrayList สำหรับ ListView ใน Android

ในผลลัพธ์ เราเพิ่มชื่อเข้า ArrayList และแสดงใน ListView ตอนนี้กดปุ่ม Delete All เพื่อลบรายการทั้งหมดใน ListView

วิธีลบข้อมูลทั้งหมดจาก ArrayList สำหรับ ListView ใน Android