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

অ্যান্ড্রয়েড ListView-এ সমস্ত চেক করা আইটেম পাওয়ার পদ্ধতি

এই উদাহরণটি দেখায় কিভাবে অ্যান্ড্রয়েড ListView-এ সমস্ত চেক করা আইটেম পাওয়া যায়।

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

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

ধাপ ২: লেআউট XML ফাইল যোগ করুন

res/layout/activity_main.xml ফাইলে নিচের কোডটি যোগ করুন। "Select all" বাটন এবং ListView থাকবে।

<?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"
    android:orientation="vertical"
    tools:context="MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">
        <Button
            android:id="@+id/viewCheckedItem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Select all" />
    </LinearLayout>
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="30dp"
        android:layout_weight="1">
    </ListView>
</LinearLayout>

ধাপ ৩: CustomAdapter.java ক্লাস তৈরি করুন

নতুন একটি জাভা ক্লাস CustomAdapter.java তৈরি করে নিচের কোডটি যোগ করুন। BaseAdapter ব্যবহার করে চেকবক্সযুক্ত লিস্ট আইটেম রেন্ডার করা হয়েছে।

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Objects;

class CustomAdapter extends BaseAdapter {
    private Context context;
    private static ArrayList modelArrayList;

    CustomAdapter(Context context, ArrayList modelArrayList) {
        this.context = context;
        CustomAdapter.modelArrayList = modelArrayList;
    }

    @Override
    public int getViewTypeCount() {
        return getCount();
    }

    @Override
    public int getItemViewType(int position) {
        return position;
    }

    @Override
    public int getCount() {
        return modelArrayList.size();
    }

    @Override
    public Object getItem(int position) {
        return modelArrayList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @SuppressLint("InflateParams")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = Objects.requireNonNull(inflater).inflate(R.layout.listitem, null, true);
            holder.checkBox = convertView.findViewById(R.id.checkBox);
            holder.tvPlayer = convertView.findViewById(R.id.playerNameList);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.checkBox.setText("Checkbox " + position);
        holder.tvPlayer.setText(modelArrayList.get(position).getPlayer());
        holder.checkBox.setChecked(modelArrayList.get(position).getSelected());
        holder.checkBox.setTag(R.integer.btnPlusView, convertView);
        holder.checkBox.setTag(position);
        holder.checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Integer pos = (Integer) holder.checkBox.getTag();
                Toast.makeText(context, "Checkbox " + pos + " Clicked!", Toast.LENGTH_SHORT).show();
                if (modelArrayList.get(pos).getSelected()) {
                    modelArrayList.get(pos).setSelected(false);
                } else {
                    modelArrayList.get(pos).setSelected(true);
                }
            }
        });
        return convertView;
    }

    private class ViewHolder {
        CheckBox checkBox;
        private TextView tvPlayer;
    }
}

ধাপ ৪: Model.java ক্লাস তৈরি করুন

Model.java ক্লাস তৈরি করে নিচের কোডটি যোগ করুন। চেকবক্স স্টেট এবং প্লেয়ার নাম ধারণ করে।

class Model {
    private boolean isSelected;
    private String player;

    String getPlayer() {
        return player;
    }

    void setPlayer(String player) {
        this.player = player;
    }

    boolean getSelected() {
        return isSelected;
    }

    void setSelected(boolean selected) {
        isSelected = selected;
    }
}

ধাপ ৫: strings.xml-এ ইন্টিজার রিসোর্স যোগ করুন

res/values/strings.xml ফাইলে নিচের কোডটি যোগ করুন।

<resources>
    <string name="app_name">Sample</string>
    <integer name="btnPlusView">1</integer>
    <integer name="btnPlusPos">2</integer>
</resources>

ধাপ ৬: listItem.xml লেআউট ফাইল তৈরি করুন

res/layout/listitem.xml ফাইল তৈরি করে নিচের কোডটি যোগ করুন। চেকবক্স এবং টেক্সটভিউ সহ লিস্ট আইটেম লেআউট।

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkBox" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/playerNameList"
        android:layout_marginStart="20dp"
        android:textSize="20sp" />
</LinearLayout>

ধাপ ৭: MainActivity.java ফাইলে কোড যোগ করুন

src/MainActivity.java ফাইলে নিচের কোডটি যোগ করুন। Select All/Unselect All ফাংশনালিটি এবং প্লেয়ার লিস্ট সহ অ্যাডাপ্টার সেট করা হয়েছে।

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

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    private ArrayList modelArrayList;
    private CustomAdapter customAdapter;
    Button btnSelect, btnDeselect;

    public static String[] playerList = new String[]{
        "Sunil Chetri - INDIA",
        "Cristiano Ronaldo - Portugal",
        "Lionel Messi - Argentina",
        "Neymar Jr - Brazil",
        "Eden Hazard - Belgium",
        "Gigi Buffon - Italy",
        "James Rodrigues - Columbia",
        "Sadio Mane - Senegal",
        "Toni Kroos - Germany"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.listView);
        btnSelect = findViewById(R.id.viewCheckedItem);
        btnDeselect = findViewById(R.id.deSelect);
        modelArrayList = getModel(false);
        customAdapter = new CustomAdapter(MainActivity.this, modelArrayList);
        listView.setAdapter(customAdapter);

        btnSelect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                modelArrayList = getModel(true);
                customAdapter = new CustomAdapter(MainActivity.this, modelArrayList);
                listView.setAdapter(customAdapter);
                Toast.makeText(getApplicationContext(), "Checked all items", Toast.LENGTH_SHORT).show();
            }
        });

        btnDeselect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                modelArrayList = getModel(false);
                customAdapter = new CustomAdapter(MainActivity.this, modelArrayList);
                listView.setAdapter(customAdapter);
                Toast.makeText(getApplicationContext(), "Unchecked all items", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private ArrayList getModel(boolean isSelect) {
        ArrayList list = new ArrayList<>();
        for (int i = 0; i < 9; i++) {
            Model model = new Model();
            model.setSelected(isSelect);
            model.setPlayer(playerList[i]);
            list.add(model);
        }
        return list;
    }
}

ধাপ ৮: AndroidManifest.xml ফাইল

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

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

আপনার অ্যান্ড্রয়েড মোবাইল ডিভাইস কম্পিউটারের সাথে সংযুক্ত আছে ধরে নেওয়া হয়েছে। Android Studio-তে আপনার প্রজেক্টের যেকোনো এক্টিভিটি ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ডিভাইসে ডিফল্ট স্ক্রিন দেখুন।

  1. অ্যান্ড্রয়েডে সব কন্ট্যাক্ট পড়ার পদ্ধতি

  2. Android-এ ListView আইটেমের ব্যাকগ্রাউন্ড রঙ পরিবর্তন করার পদ্ধতি

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

  4. অ্যান্ড্রয়েডে Spinner ভ্যালু পাওয়ার পদ্ধতি