स्पिनर की मदद से किसी सेट से एक वैल्यू तुरंत चुनी जा सकती है. डिफ़ॉल्ट में स्थिति है, तो स्पिनर इसका वर्तमान में चयनित मान दिखाता है. स्पिनर पर टैप करना इससे एक मेन्यू दिखता है. इसमें वे सभी वैल्यू दिखती हैं जिन्हें उपयोगकर्ता चुन सकता है.

इसके साथ, अपने लेआउट में स्पिनर जोड़ा जा सकता है
Spinner
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
ऑब्जेक्ट है, जिसे आप आमतौर पर अपने एक्सएमएल लेआउट में
<Spinner>
एलिमेंट. यह इस तरह से दिखाया गया है
उदाहरण:
<Spinner
android:id="@+id/planets_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
विकल्पों की सूची के साथ स्पिनर को पॉप्युलेट करने के लिए,
SpinnerAdapter
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
आपके
Activity
या
Fragment
सोर्स कोड.
अगर मटीरियल डिज़ाइन कॉम्पोनेंट का इस्तेमाल किया जा रहा है, तो
एक्सपोज़्ड
ड्रॉपडाउन मेन्यू, 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>
इस तरह की कलेक्शन के साथ, नीचे दिए गए कोड का इस्तेमाल
के साथ स्पिनर देने के लिए Activity
या Fragment
ArrayAdapter
के इंस्टेंस का इस्तेमाल करके अरे:
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
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
एक अन्य स्टैंडर्ड लेआउट है जिसे प्लैटफ़ॉर्म ने तय किया है.
कॉल करें
setAdapter()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अपने Spinner
पर अडैप्टर लगाने के लिए.
चुने गए उपयोगकर्ताओं को जवाब दें
जब उपयोगकर्ता स्पिनर के मेन्यू से किसी आइटम को चुनता है, तो
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);
अगर आप AdapterView.OnItemSelectedListener
लागू करते हैं, तो
इंटरफ़ेस आपके Activity
या Fragment
के साथ दिखाई देगा, जैसा कि
पिछले उदाहरण में, this
को इंटरफ़ेस इंस्टेंस के तौर पर पास किया जा सकता है.