স্পিনার কোনও সেট থেকে একটি ভ্যালু বেছে নেওয়ার দ্রুত উপায় প্রদান করে। ডিফল্ট অবস্থায়, স্পিনার বর্তমানে বেছে নেওয়া ভ্যালু দেখায়। স্পিনারে ট্যাপ করলে একটি মেনু দেখা যায় যেখানে ব্যবহারকারী বেছে নিতে পারেন এমন অন্যান্য সব ভ্যালু দেখানো হয়।
আপনি
Spinner
অবজেক্টের সাহায্যে আপনার লেআউটে একটি স্পিনার যোগ করতে পারেন, যা আপনি সাধারণত আপনার XML লেআউটে একটি
<Spinner> এলিমেন্টের সাহায্যে করেন। এটি নিম্নলিখিত উদাহরণে
দেখানো হয়েছে:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
পছন্দের তালিকা সহ স্পিনার পপুলেট করতে, আপনার
Activity বা
Fragment
সোর্স কোডে একটি
SpinnerAdapter
নির্দিষ্ট করুন।
আপনি মেটেরিয়াল ডিজাইন কম্পোনেন্ট ব্যবহার করলে,
এক্সপোজড
ড্রপডাউন মেনু হল Spinner-এর সমতুল্য।
ব্যবহারকারীর পছন্দ অনুযায়ী স্পিনার পপুলেট করুন
স্পিনারের জন্য আপনার দেওয়া পছন্দ যেকোনও সোর্স থেকে আসতে পারে, তবে আপনাকে
অবশ্যই সেগুলি SpinnerAdapter-এর মাধ্যমে দিতে হবে, যেমন
ArrayAdapter
যদি পছন্দগুলি কোনও অ্যারেতে উপলভ্য থাকে বা
CursorAdapter
যদি পছন্দগুলি কোনও ডেটাবেস কোয়েরি থেকে উপলভ্য থাকে।
যেমন, আপনার স্পিনারের জন্য উপলভ্য বিকল্পগুলি আগে থেকে নির্ধারিত হলে, আপনি সেগুলিকে একটি স্ট্রিং রিসোর্স ফাইলে সংজ্ঞায়িত একটি স্ট্রিং অ্যারে প্রদান করতে পারেন:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="planets_array"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> </string-array> </resources>
এই ধরনের অ্যারের ক্ষেত্রে, আপনি ArrayAdapter-এর ইনস্ট্যান্স ব্যবহার করে অ্যারের সাথে স্পিনার প্রদান করতে
আপনার Activity বা Fragment-এ নিম্নলিখিত কোড ব্যবহার করতে
পারেন:
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ).also { adapter -> // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) // Apply the adapter to the spinner. spinner.adapter = adapter }
জাভা
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ); // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner. spinner.setAdapter(adapter);
createFromResource()
পদ্ধতি আপনাকে স্ট্রিং অ্যারে থেকে ArrayAdapter তৈরি করতে দেয়। এই পদ্ধতির
তৃতীয় আর্গুমেন্ট হল লেআউট রিসোর্স যা স্পিনার কন্ট্রোলে বেছে নেওয়া বিকল্প কীভাবে
দেখা যাবে তা নির্ধারণ করে। প্ল্যাটফর্মটি
simple_spinner_item
লেআউট প্রদান করে। স্পিনারের চেহারার জন্য আপনি নিজের লেআউট সংজ্ঞায়িত করতে না চাইলে এটি ডিফল্ট লেআউট।
স্পিনার পছন্দের তালিকা দেখানোর জন্য অ্যাডাপ্টার যে লেআউট ব্যবহার করে তা নির্দিষ্ট করতে
setDropDownViewResource(int)
কল করুন।
simple_spinner_dropdown_item
হল প্ল্যাটফর্মের দ্বারা সংজ্ঞায়িত আরেকটি স্ট্যান্ডার্ড লেআউট।
আপনার Spinner-এ অ্যাডাপ্টার প্রয়োগ করতে
setAdapter()-এ কল করুন।
ব্যবহারকারীর বেছে নেওয়া বিকল্পে উত্তর দিন
ব্যবহারকারী স্পিনারের মেনু থেকে কোনও আইটেম বেছে নিলে, Spinner অবজেক্ট
একটি অন-আইটেম-সিলেক্টেড ইভেন্ট পায়।
স্পিনারের জন্য সিলেকশন ইভেন্ট হ্যান্ডলার নির্ধারণ করতে, AdapterView.OnItemSelectedListener
ইন্টারফেস এবং সংশ্লিষ্ট
onItemSelected()
কলব্যাক পদ্ধতি প্রয়োগ করুন। যেমন, এখানে Activity-এ ইন্টারফেসের প্রয়োগ দেখানো হয়েছে:
Kotlin
class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener { ... override fun onItemSelected(parent: AdapterView<*>, view: View?, pos: Int, id: Long) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } override fun onNothingSelected(parent: AdapterView<*>) { // Another interface callback. } }
জাভা
public class SpinnerActivity extends Activity implements OnItemSelectedListener { ... public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } public void onNothingSelected(AdapterView<?> parent) { // Another interface callback. } }
AdapterView.OnItemSelectedListener ইন্টারফেসের জন্য
onItemSelected() এবং
onNothingSelected()
কলব্যাক পদ্ধতি প্রয়োজন।
setOnItemSelectedListener()-কে কল করে ইন্টারফেস ইমপ্লিমেন্টেশন নির্দিষ্ট করুন:
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) spinner.onItemSelectedListener = this
জাভা
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); spinner.setOnItemSelectedListener(this);
আপনি যদি আগের উদাহরণের মতো Activity বা Fragment-এর সাথে AdapterView.OnItemSelectedListener
ইন্টারফেস প্রয়োগ করেন, তাহলে ইন্টারফেস ইনস্ট্যান্স হিসেবে this পাস করতে পারবেন।