एंड्रॉइड में ArrayAdapter के साथ ListView कार्यान्वयन
यह ट्यूटोरियल दर्शाता है कि ArrayAdapter का उपयोग करके स्ट्रिंग ऐरे से सिंपल ListView कैसे बनाया जाए, कस्टम आइटम लेआउट के साथ।
लेआउट फ़ाइलें
activity_main.xml - मुख्य लेआउट
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<ListView
android:id="@+id/simpleListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#CCCCCC"
android:dividerHeight="1dp" />
</RelativeLayout>
list_item.xml - कस्टम आइटम लेआउट (res/layout/)
<TextView xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:textSize="18sp"
android:textColor="#333333" />
MainActivity.java
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String[] playersList = {
"रोनाल्डो", "मेस्सी", "नेमार", "इस्को", "हैज़र्ड",
"बेल", "बुस्केट्स", "इब्राहिमोविक", "बुफोन", "कैसिलास"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.simpleListView);
// ArrayAdapter कंस्ट्रक्टर: context, layout resource, textView ID, data array
ArrayAdapter adapter = new ArrayAdapter<>(
this,
R.layout.list_item, // कस्टम लेआउट
R.id.textView, // लेआउट में TextView की ID
playersList // डेटा स्रोत
);
listView.setAdapter(adapter);
// आइटम क्लिक लिस्टनर
listView.setOnItemClickListener((parent, view, position, id) -> {
String selectedPlayer = playersList[position];
Toast.makeText(this, "चुना गया: " + selectedPlayer, Toast.LENGTH_SHORT).show();
});
}
}
ArrayAdapter के महत्वपूर्ण कंस्ट्रक्टर
// 1. सिंपल बिल्ट-इन लेआउट (android.R.layout.simple_list_item_1) ArrayAdapteradapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList); // 2. कस्टम लेआउट + TextView ID ArrayAdapter adapter = new ArrayAdapter<>(this, R.layout.custom_item, R.id.textView, dataList); // 3. List ऑब्जेक्ट के साथ ArrayAdapter adapter = new ArrayAdapter<>(this, R.layout.custom_item, R.id.textView, new ArrayList<>(Arrays.asList(dataArray)));
डायनामिक डेटा अपडेट
// आइटम जोड़ें
adapter.add("नया खिलाड़ी");
adapter.notifyDataSetChanged();
// आइटम हटाएं
adapter.remove("हटाने वाला खिलाड़ी");
adapter.notifyDataSetChanged();
// पूरी लिस्ट बदलें
adapter.clear();
adapter.addAll(newDataList);
adapter.notifyDataSetChanged();
मॉडर्न विकल्प: RecyclerView
नए ऐप्स के लिए, RecyclerView + ListAdapter का उपयोग करें:
- बेहतर परफॉरमेंस (ViewHolder पैटर्न)
- बिल्ट-इन एनिमेशन (DiffUtil)
- अधिक लचीलापन (ग्रिड, स्टैगर्ड लेआउट)
// build.gradle implementation "androidx.recyclerview:recyclerview:1.3.0"