কম্পিউটার টিউটোরিয়াল

Android-এ ListView-এ হেডার আইটেম যোগ করার পদ্ধতি

Android ListView-এ হেডার আইটেম যোগ করার টিউটোরিয়াল

এই উদাহরণে দেখানো হয়েছে Android-এ ListView-এ হেডার আইটেম কীভাবে যোগ করবেন।

স্টেপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project-এ যান এবং প্রয়োজনীয় ডিটেইল পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

স্টেপ ২: 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 = "নাম লিখুন" 
        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" /> 
    </LinearLayout> 
    <ListView 
        android:id = "@+id/listView" 
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"> 
    </ListView> 
</LinearLayout>

উপরের কোডে নামের জন্য একটি EditText নেওয়া হয়েছে। Save বাটনে ক্লিক করলে ডেটা ArrayList-এ সংরক্ষিত হবে। Refresh বাটনে ক্লিক করলে ListView-এ পরিবর্তনগুলো দেখাবে।

স্টেপ ৩: src/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.EditText; 
import android.widget.ListView; 
import android.widget.Toast; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Comparator; 
import java.util.HashSet; 
import java.util.Set; 

public class MainActivity extends AppCompatActivity { 
    EditText name; 
    ArrayAdapter arrayAdapter; 
    ArrayList<String> array_list; 
    Set set = new HashSet(); 
    private ListView listView; 
    
    @Override 
    protected void onCreate(Bundle readdInstanceState) { 
        super.onCreate(readdInstanceState); 
        setContentView(R.layout.activity_main); 
        array_list = new ArrayList<String>(); 
        array_list.ensureCapacity(20); 
        name = findViewById(R.id.name); 
        listView = findViewById(R.id.listView); 
        
        findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                arrayAdapter.notifyDataSetChanged(); 
                listView.invalidateViews(); 
                listView.refreshDrawableState(); 
            } 
        }); 
        
        findViewById(R.id.save).setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                if (!name.getText().toString().isEmpty()) { 
                    set.add(name.getText().toString()); 
                    array_list.clear(); 
                    if (array_list.isEmpty()) { 
                        // হেডার হিসেবে "HEADER" যোগ করা হয়েছে
                        array_list.add(0, "HEADER"); 
                        array_list.addAll(set); 
                        Collections.sort(array_list, new Comparator<String>() { 
                            @Override 
                            public int compare(String o1, String o2) { 
                                return o1.compareTo(o2); 
                            } 
                        }); 
                        array_list.trimToSize(); 
                        arrayAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, array_list); 
                        listView.setAdapter(arrayAdapter); 
                    } else { 
                        listView.setVisibility(View.GONE); 
                    } 
                    Toast.makeText(MainActivity.this, "সংরক্ষিত হয়েছে", Toast.LENGTH_LONG).show(); 
                } else { 
                    name.setError("নাম লিখুন"); 
                } 
            } 
        }); 
    } 
}

হেডার আইটেম যোগ করার কৌশল

array_list.add(0, "HEADER") ব্যবহার করে লিস্টের সবচেয়ে প্রথম পজিশন (ইন্ডেক্স ০) এ "HEADER" স্ট্রিং যোগ করা হয়েছে। এরপর Collections.sort() দিয়ে লিস্টটি সাজানো হয়েছে। এভাবে ListView-এ প্রথম আইটেম হিসেবে হেডার প্রদর্শিত হয়।

নোট: আধুনিক Android ডেভেলপমেন্টে ListView-এ হেডার যোগ করার জন্য addHeaderView() মেথড বা RecyclerView ব্যবহার করা উচিত। এই পদ্ধতিটি শুধু শেখার উদ্দেশ্যে দেখানো হয়েছে।

অ্যাপ্লিকেশন চালান

Android Studio-তে Run আইকনে ক্লিক করে অ্যাপ চালান। ডিভাইস সিলেক্ট করুন।

Android-এ ListView-এ হেডার আইটেম যোগ করার পদ্ধতি

উপরের ফলাফলে হেডার লিস্ট চাইল্ড আইটেমের সাথে যুক্ত হয়ে দেখাচ্ছে।

  1. Android-এ ListView-এর জন্য ArrayList-এন এলিমেন্ট মুছে ফেলার পদ্ধতি

  2. অ্যান্ড্রয়েড ListView-এ ফুটার যোগ করার পদ্ধতি

  3. অ্যান্ড্রয়েডে ListView-এর জন্য কাস্টম অ্যাডাপ্টার তৈরির পদ্ধতি

  4. অ্যান্ড্রয়েডে ListView-এর রিসাইক্লিং মেকানিজম কীভাবে কাজ করে?