Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में ListView के लिए ArrayList से एलिमेंट कैसे डिलीट करें?

Android में ArrayList और ListView से आइटम हटाने का पूरा गाइड

यह उदाहरण दर्शाता है कि ArrayList का उपयोग करके ListView में से विशिष्ट एलिमेंट्स कैसे हटाए जाते हैं। ArrayList रैंडम एक्सेस के लिए ऑप्टिमाइज्ड है।

चरण 1: प्रोजेक्ट सेटअप

Android Studio में नया प्रोजेक्ट बनाएं: File → New Project।

चरण 2: लेआउट डिज़ाइन (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="नाम दर्ज करें"
        android:layout_height="wrap_content" />

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

        <Button
            android:id="@+id/save"
            android:text="सेव करें"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/refresh"
            android:text="रिफ्रेश"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/delete"
            android:text="डिलीट"
            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>

चरण 3: MainActivity.java इम्प्लीमेंटेशन

package com.example.andy.myapplication;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    EditText name;
    ArrayAdapter<String> arrayAdapter;
    private ListView listView;
    ArrayList<String> 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);

        // रिफ्रेश बटन
        findViewById(R.id.refresh).setOnClickListener(v -> {
            if (arrayAdapter != null) {
                arrayAdapter.notifyDataSetChanged();
                listView.invalidateViews();
                listView.refreshDrawableState();
            }
        });

        // डिलीट बटन
        findViewById(R.id.delete).setOnClickListener(v -> {
            String inputName = name.getText().toString().trim();
            if (array_list.size() > 0) {
                if (!inputName.isEmpty()) {
                    boolean removed = array_list.remove(inputName);
                    arrayAdapter = new ArrayAdapter<>(MainActivity.this,
                            android.R.layout.simple_list_item_1, array_list);
                    listView.setAdapter(arrayAdapter);
                    if (removed) {
                        Toast.makeText(MainActivity.this, "डिलीट किया गया", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(MainActivity.this, "नाम सूची में नहीं मिला", Toast.LENGTH_LONG).show();
                    }
                } else {
                    name.setError("डिलीट करने के लिए नाम दर्ज करें");
                }
            } else {
                Toast.makeText(MainActivity.this, "डिलीट करने के लिए कोई एलिमेंट नहीं", Toast.LENGTH_LONG).show();
            }
        });

        // सेव बटन
        findViewById(R.id.save).setOnClickListener(v -> {
            String inputName = name.getText().toString().trim();
            if (!inputName.isEmpty()) {
                array_list.add(inputName);
                arrayAdapter = new ArrayAdapter<>(MainActivity.this,
                        android.R.layout.simple_list_item_1, array_list);
                listView.setAdapter(arrayAdapter);
                Toast.makeText(MainActivity.this, "इन्सर्ट किया गया", Toast.LENGTH_LONG).show();
                name.setText("");
            } else {
                name.setError("नाम दर्ज करें");
            }
        });
    }
}

सुधार और बेस्ट प्रैक्टिस:

  • जेनेरिक्स: ArrayList<String> टाइप सेफ्टी सुनिश्चित करता है।
  • बूलियन रिटर्न चेक: remove() का रिटर्न वैल्यू चेक करके यूजर को सही फीडबैक दें।
  • एडैप्टर ऑप्टिमाइजेशन: बार-बार नया एडैप्टर बनाने के बजाय, एक ही एडैप्टर इंस्टेंस रखें और notifyDataSetChanged() कॉल करें।
  • इनपुट ट्रिमिंग: .trim() से व्हाइटस्पेस-ओनली इनपुट रोका जाता है।

बेहतर एडैप्टर पैटर्न (अनुशंसित):

// क्लास लेवल पर एक बार इनीशियलाइज़ करें
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, array_list);
listView.setAdapter(arrayAdapter);

// फिर डेटा बदलने पर सिर्फ नोटिफाई करें
array_list.add(inputName);
arrayAdapter.notifyDataSetChanged();

ऐप टेस्ट करें

डिवाइस पर चलाएं। नाम जोड़ें, डिलीट करने के लिए नाम टाइप करें और "डिलीट" दबाएं।

Android में ListView के लिए ArrayList से एलिमेंट कैसे डिलीट करें?

Android में ListView के लिए ArrayList से एलिमेंट कैसे डिलीट करें?

नतीजा: ArrayList-आधारित ListView में नाम जोड़ना और विशिष्ट नाम से हटाना सफलतापूर्वक काम करता है।

  1. Android में ListView के लिए LinkedList से सभी एलिमेंट्स कैसे डिलीट करें? Android में ListView के लिए LinkedList से सभी एलिमेंट्स कैसे डिलीट करें?

    Android में LinkedList से सभी आइटम एक साथ क्लियर करना यह ट्यूटोरियल दिखाता है कि LinkedList का उपयोग करके ListView के सभी एलिमेंट्स को एक क्लिक में कैसे डिलीट किया जाए clear() मेथड से। चरण 1: नया प्रोजेक्ट बनाएं Android Studio: File → New Project → विवरण भरें। चरण 2: लेआउट XML (res/layout/activity

  1. Android में ArrayBlockingQueue से एलिमेंट कैसे हटाएं? Android में ArrayBlockingQueue से एलिमेंट कैसे हटाएं?

    ArrayBlockingQueue में remove(Object) - विशिष्ट एलिमेंट हटाना remove(Object o) क्यू से पहली बार मिलने वाले निर्दिष्ट एलिमेंट को हटाता है। FIFO क्रम प्रभावित होता है। चरण 1: प्रोजेक्ट बनाएं Android Studio: File → New Project। चरण 2: लेआउट (activity_main.xml) <?xml version=1.0 encoding=utf-8?>

  1. Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं? Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं?

    Android ListView के लिए कस्टम एडाप्टर बनाना यह उदाहरण दर्शाता है कि BaseAdapter को एक्सटेंड करके कस्टम एडाप्टर कैसे बनाया जाए, जो कस्टम डेटा मॉडल और कस्टम रो लेआउट के साथ ListView में डेटा बाइंड करता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मेन लेआउट (res/