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

एंड्रॉइड पर ListView को डायनामिक रूप से कैसे अपडेट करें

एंड्रॉइड में ListView को डायनामिक रूप से अपडेट करना

यह गाइड दिखाता है कि डेटा सेट बदलने पर ListView को प्रोग्रामेटिक रूप से कैसे रीफ्रेश किया जाए। मुख्य विचार: अंतर्निहित डेटा संरचना को संशोधित करें और फिर एडॉप्टर पर notifyDataSetChanged() कॉल करें।

पूर्वापेक्षाएँ

  • एंड्रॉइड स्टूडियो, न्यूनतम SDK 21+
  • एडॉप्टर और ListView की बुनियादी समझ

चरण 1 - प्रोजेक्ट बनाएं

File → New → New Project → Empty Activity → पैकेज नाम: com.example.dynamiclistview → Finish।

चरण 2 - लेआउट (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">

    <Button
        android:id="@+id/btnAddItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="आइटम जोड़ें" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_marginTop="12dp" />

</LinearLayout>

डेमो के लिए एक बटन जोड़ा गया है; मूल उदाहरण में ट्रिगर UI नहीं था।

चरण 3 - गतिविधि कोड (MainActivity.java)

package com.example.dynamiclistview;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

    private List items = new ArrayList<>();
    private ArrayAdapter adapter;
    private int counter = 1;

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

        ListView listView = findViewById(R.id.listView);
        Button btnAdd = findViewById(R.id.btnAddItem);

        // प्रारंभिक डेटा
        items.add("आइटम 1");
        items.add("आइटम 2");
        items.add("आइटम 3");

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

        btnAdd.setOnClickListener(v -> {
            items.add("आइटम " + (++counter));
            adapter.notifyDataSetChanged(); // UI को रीफ्रेश करता है
        });

        // वैकल्पिक: हटाने के लिए लॉन्ग-क्लिक
        listView.setOnItemLongClickListener((parent, view, position, id) -> {
            items.remove(position);
            adapter.notifyDataSetChanged();
            return true;
        });
    }
}

यह कैसे काम करता है

  1. items सूची डेटा स्रोत रखती है।
  2. ArrayAdapter सूची को ListView से बांधता है।
  3. डेटा जोड़ने/हटाने के बाद, adapter.notifyDataSetChanged() ListView को पुनः बांधने के लिए कहता है।

सर्वोत्तम अभ्यास

  • बड़े डेटासेट के लिए RecyclerView का उपयोग करें — इसमें अंतर्निहित एनिमेशन और notifyItemInserted()/notifyItemRemoved() जैसे दानेदार अपडेट विधियां हैं।
  • यदि संभव हो तो UI थ्रेड पर भारी गणना से बचें; सूची को संशोधित करने से पहले पृष्ठभूमि थ्रेड का उपयोग करें।
  • एकल-प्रकार की सूचियों के लिए ArrayAdapter पसंद करें; जटिल लेआउट के लिए कस्टम एडॉप्टर का उपयोग करें।

चलाएं और परीक्षण करें

  1. एक वास्तविक डिवाइस या एमुलेटर पर ऐप लॉन्च करें।
  2. "आइटम जोड़ें" दबाएं — नई पंक्तियां तुरंत दिखाई देती हैं।
  3. किसी पंक्ति को लॉन्ग-प्रेस करके हटाएं।

यही पैटर्न किसी भी एडॉप्टर-समर्थित दृश्य (Spinner, GridView, RecyclerView) पर लागू होता है—बस संबंधित notify… विधि को कॉल करें।

  1. Android ListView में फुटर (Footer) कैसे जोड़ें? Android ListView में फुटर (Footer) कैसे जोड़ें?

    Android ListView में कस्टम फुटर व्यू जोड़ना ListView के अंत में एक फुटर व्यू (जैसे सूची समाप्त संदेश) जोड़ने का तरीका सीखें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से प्रोजेक्ट बनाएं। चरण 2: मेन लेआउट में ListView res/layout/activity_main.xml: <RelativeLayout xmlns:and

  1. Android अलर्ट डायलॉग में ListView कैसे दिखाएं? Android अलर्ट डायलॉग में ListView कैसे दिखाएं?

    Android AlertDialog में कस्टम ListView प्रदर्शित करना यह उदाहरण दर्शाता है कि एक कस्टम लेआउट के साथ AlertDialog में ListView कैसे दिखाया जाए, जिसमें नीचे एक बटन भी शामिल है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मेन लेआउट (res/layout/activity_main.xml) <

  1. एंड्रॉइड में डायनामिकली बटन कैसे जोड़ें? एंड्रॉइड में डायनामिकली बटन कैसे जोड़ें?

    एंड्रॉइड में रनटाइम पर प्रोग्रामेटिकली बटन (या कोई व्यू) जोड़ना कभी-कभी लेआउट XML में नहीं, बल्कि डेटा/शर्तों के आधार पर रनटाइम पर व्यूज जोड़ने पड़ते हैं। इसके लिए: **पैरेंट व्यूग्रुप प्राप्त करें → नया व्यू बनाएं → LayoutParams सेट करें → addView() कॉल करें।** चरण 1: नया प्रोजेक्ट बनाएं Android St