Spinner-এ AdapterView.OnItemSelectedListener ব্যবহার করে সিলেক্টেড ভ্যালু পাওয়া
অ্যান্ড্রয়েড Spinner একটি ড্রপ-ডাউন লিস্ট প্রদান করে। ব্যবহারকারী কোন আইটেম সিলেক্ট করলে `OnItemSelectedListener` ইন্টারফেসের `onItemSelected()` মেথড কল হয়, যেখানে থেকে সিলেক্টেড ভ্যালু পাওয়া যায়।
ধাপ ১: প্রজেক্ট তৈরি করুন
স্ট্যান্ডার্ড অ্যান্ড্রয়েড প্রজেক্ট।
ধাপ ২: লেআউটে Spinner যোগ করুন
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="16sp"
tools:context=".MainActivity">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
ধাপ ৩: স্ট্রিং অ্যারে ডেটা
res/values/strings.xml - স্ট্রিং অ্যারে ডিফাইন করুন:
<resources>
<string name="app_name">Sample</string>
<string-array name="birds">
<item>Crane</item>
<item>Cuckoo</item>
<item>Pigeon</item>
<item>Eagle</item>
<item>Owl</item>
<item>Vulture</item>
<item>Woodpecker</item>
</string-array>
</resources>
ধাপ ৪: Spinner সেটআপ এবং লিসেনার
src/MainActivity.java:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
// স্ট্রিং অ্যারে থেকে অ্যাডাপ্টার তৈরি
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.birds, android.R.layout.simple_spinner_item);
// ড্রপ-ডাউন ভিউ লেআউট সেট করুন
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// অ্যাডাপ্টার সেট করুন
spinner.setAdapter(adapter);
// লিসেনার সেট করুন
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// সিলেক্টেড আইটেম পাওয়া
String selectedItem = parent.getItemAtPosition(position).toString();
// Toast দেখান
Toast.makeText(parent.getContext(), "Selected: " + selectedItem, Toast.LENGTH_SHORT).show();
// অথবা সরাসরি পজিশন ব্যবহার করুন
// String selectedItem = parent.getAdapter().getItem(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// কিছুই সিলেক্ট না হলে (খুব কম ঘটে)
}
}
গুরুত্বপূর্ণ পয়েন্ট
- createFromResource() - স্ট্রিং অ্যারে রিসোর্স থেকে সরাসরি অ্যাডাপ্টার তৈরি করে
- setDropDownViewResource() - ড্রপ-ডাউন লিস্টের চেহারা কন্ট্রোল করে
- implements OnItemSelectedListener - এক্টিভিটিই লিসেনার হয়
- parent.getItemAtPosition(position) - সিলেক্টেড অবজেক্ট রিটার্ন করে
প্রোগ্রাম্যাটিক্যালি সিলেকশন সেট করা
// পজিশন অনুযায়ী
spinner.setSelection(2); // তৃতীয় আইটেম (0-ইন্ডেক্স)
// ভ্যালু অনুযায়ী
int position = adapter.getPosition("Eagle");
if (position >= 0) {
spinner.setSelection(position);
}
কাস্টম লেআউট ব্যবহার
কাস্টম রো লেআউটের জন্য:
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.custom_spinner_item, birdsList); adapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);