স্পিনাররা একটি সেট থেকে একটি মান নির্বাচন করার একটি দ্রুত উপায় প্রদান করে। ডিফল্ট অবস্থায়, একজন স্পিনার তার বর্তমানে নির্বাচিত মান দেখায়। স্পিনার আলতো চাপলে ব্যবহারকারী নির্বাচন করতে পারে এমন অন্যান্য সমস্ত মান প্রদর্শন করে একটি মেনু প্রদর্শন করে।
আপনি 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
নিম্নলিখিত কোডটি ব্যবহার করতে পারেন:
কোটলিন
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
ইন্টারফেসের একটি বাস্তবায়ন রয়েছে:
কোটলিন
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()
কল করে ইন্টারফেস বাস্তবায়ন নির্দিষ্ট করুন :
কোটলিন
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
পাস করতে পারেন।