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

क्लिक पर ListView से आइटम डायनामिक रूप से कैसे हटाएं?

क्लिक पर ListView आइटम हटाना

यह ट्यूटोरियल दिखाता है कि उपयोगकर्ता द्वारा टैप करने पर ListView से आइटम कैसे हटाया जाए। कोर पैटर्न: एडॉप्टर के डेटा स्रोत से आइटम हटाएं और notifyDataSetChanged() कॉल करें।

सेटअप

  • एंड्रॉइड स्टूडियो, न्यूनतम SDK 21+
  • पैकेज: com.example.removeitemlistview

चरण 1 - लेआउट (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:padding="16dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="हटाने के लिए किसी आइटम पर टैप करें"
        android:textSize="16sp"
        android:textColor="#666"
        android:layout_marginBottom="8dp" />

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

</LinearLayout>

चरण 2 - गतिविधि (MainActivity.java)

package com.example.removeitemlistview;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private final List items = new ArrayList<>();
    private ArrayAdapter adapter;

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

        ListView listView = findViewById(R.id.listView);

        // नमूना डेटा
        for (int i = 1; i <= 10; i++) {
            items.add("आइटम " + i);
        }

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

        listView.setOnItemClickListener((AdapterView parent, View view, int position, long id) -> {
            String removed = items.remove(position);
            adapter.notifyDataSetChanged();
            Toast.makeText(this, "हटाया गया: " + removed, Toast.LENGTH_SHORT).show();
        });
    }
}

मुख्य बिंदु

  • डेटा पहले: हमेशा अंतर्निहित सूची (items.remove(position)) को संशोधित करें, फिर एडॉप्टर को सूचित करें।
  • notifyDataSetChanged() पूरे ListView को रीफ्रेश करता है; छोटी सूचियों के लिए ठीक है।
  • RecyclerView विकल्प: बड़े/जटिल डेटा के लिए, RecyclerView + notifyItemRemoved(position) बेहतर एनिमेशन के लिए उपयोग करें।

परीक्षण

  1. डिवाइस/एमुलेटर पर चलाएं।
  2. किसी भी पंक्ति पर टैप करें — यह गायब हो जाती है और एक टोस्ट हटाए गए मान की पुष्टि करता है।
  3. सूची खाली होने तक दोहराएं।

सामान्य नुकसान

समस्यासमाधान
हटाने के बाद ऐप क्रैश होता हैसुनिश्चित करें कि items और एडॉप्टर एक ही सूची उदाहरण साझा करते हैं; एडॉप्टर सेट करने के बाद नई ArrayList न बनाएं।
UI अपडेट नहीं होताडेटा बदलने के बाद adapter.notifyDataSetChanged() कॉल करना न भूलें।
गलत आइटम हटाया गयाOnItemClickListener में position पैरामीटर का उपयोग करें, न कि स्थिर इंडेक्स का।

यह पैटर्न चेकलिस्ट, टू-डू ऐप्स, या किसी भी स्थिति के लिए काम करता है जहां उपयोगकर्ता सूची प्रविष्टियों को खारिज करते हैं।

  1. एंड्रॉइड में ListView के बीच की लाइन्स कैसे हटाएं? एंड्रॉइड में ListView के बीच की लाइन्स कैसे हटाएं?

    एंड्रॉइड में ListView डिवाइडर लाइन्स हटाने का पूरा गाइड एंड्रॉइड ऐप डेवलपमेंट में अक्सर हमें ListView में आइटम्स के बीच दिखने वाली डिफ़ॉल्ट डिवाइडर लाइन्स को हटाने या कस्टमाइज़ करने की ज़रूरत पड़ती है। यह ट्यूटोरियल आपको स्टेप-बाय-स्टेप बताएगा कि कैसे setDivider(null) मेथड का उपयोग करके इन लाइन्स को

  1. एंड्रॉइड से मैलवेयर कैसे हटाएं? एंड्रॉइड से मैलवेयर कैसे हटाएं?

    परिचय स्मार्टफोन में बैंकिंग ऐप्स, व्यक्तिगत डेटा, स्थान इतिहास आदि संवेदनशील जानकारी होती है। एंड्रॉइड डिवाइस भी कंप्यूटर की तरह मैलवेयर (वायरस, ट्रोजन, स्पायवेयर, एडवेयर, रैंसमवेयर) से संक्रमित हो सकते हैं। मैलवेयर कैसे प्रवेश करता है? असुरक्षित स्रोतों/थर्ड-पार्टी ऐप स्टोर्स से ऐप इंस्टॉल करना

  1. अपने एंड्रॉइड फोन से वायरस सुरक्षित रूप से हटाने के लिए चरण-दर-चरण गाइड अपने एंड्रॉइड फोन से वायरस सुरक्षित रूप से हटाने के लिए चरण-दर-चरण गाइड

    जैसे-जैसे एंड्रॉइड उपयोगकर्ताओं की संख्या वर्षों में बढ़ी है, विंडोज पर कभी विशेष रूप से उपलब्ध सुविधाओं ने अब स्मार्टफोन्स के छोटे ब्रह्मांड में अपनी जगह बना ली है। जबकि इसने हमें इंटरनेट और ऑनलाइन एप्लिकेशन्स तक त्वरित पहुंच जैसी क्रांतिकारी सुविधाएं दी हैं, इसने वायरस और मैलवेयर के लिए रास्ता खोल