Android Spinners

Introduction to Android Spinners

Android spinners आपकी एप्लीकेशन में एक drop down menu होती है। इस drop down menu में बहुत से items होते है जिन्हे user choices कहते है। जब user spinner पर क्लिक करता है तो ये items शो होते है। यूज़र अपने लिए appropriate choice choose करता है। By default spinner में सबसे top वाला element शो होता है।

Spinners को XML layout file में क्रिएट किया जाता है। और items की लिस्ट string resource file में क्रिएट की जाती है। जिसमे आप एक string array क्रिएट करते है।

Spinner और items को जोड़ने के लिए एक array adapter क्रिएट किया जाता है। इसके बाद selection events को respond करने के लिए OnItemSelectedListener interface को इम्प्लीमेंट किया जाता है।

Defining Android Spinners

Android spinners को आप XML layout file में define करते है। इसके लिए आप element define करते है। इस element के basic attribute वही है जो सब view elements में होते है।

  • android:id - इस attribute के द्वारा आप spinner की id define करते है।
  • android:layout_width - इस attribute के द्वारा आप spinner की width define करते है।
  • android:layout_height - इस attribute के द्वारा आप spinner की height define करते है।
<Spinner
android:id="@+id/yrspinnerid"
android:layout_width="width-of-spinner"
android:layout_height="height-of-spinner" />

Creating Spinner Items List

Spinners की items list एक string resource file में आप क्रिएट कर सकते है। इसके लिए आप एक string array क्रिएट करते है। इसके लिए आप <resources> element यूज़ करते है। <resources> element के अंदर आप <string-array> sub-element define करते है।

<string-array> element के name attribute में आप array का नाम define करते है। इसके बाद <string-array> element में <item> sub element define करते है। और items का आप इस element में define करते है।

<resources>
<string-array name="yrstringarray">
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</string-array>
</resources>

Items की लिस्ट क्रिएट करने के बाद array और spinner को connect करने के लिए आप एक array adapter क्रिएट करते है।

इसके लिए सबसे पहले आप एक spinner object create करते है और उसका reference XML layout file में जो आपने spinner define किया था उसको देते है। ऐसा आप उस spinner की id के द्वारा करते है।

Spinner yrspinner = (Spinner) findViewById(R.id.yrspinnerid);

इसके बाद आप ArrayAdapter क्लास का object create करते है ।

ArrayAdapter<CharSequence> yrAdapter = new ArrayAdapter();

किसी भी string resource file से आप ArrayAdapter directly क्रिएट नहीं कर सकते है इसके लिए आप ArrayAdapter के object पर createFromResource() method कॉल करते है। इस मेथड में आप current context, string array और items का layout पास करते है।

yrAdapter.createFromResource(this,R.array.yrstringarray,android.R.la
yout.simple_spinner_item);

इसके बाद जो layout आप items display करते समय यूज़ करना चाहते है वो set करते है। इसके लिए आप adapter object पर setDropDownViewResource() method call है और उसमे जो layout आप यूज़ करना चाहते है वो pass करते है।

yrAdapter.setDropDownViewResource(android.R.layout.simple_spinner_d
ropdown_item);

इसके बाद आप adapter को spinner के apply करते है।

yrspinner.setAdapter(yrAdapter);

इसके बाद आप यूज़र के कोई item select करने पर क्या action लेना चाहते है वो define करते है।

Responding to Item Selection

जब भी यूज़र कोई item select करे ऐसी situation में आप कुछ action लेना चाहेंगे। वो action आप onItemSelected() method में डिफाइन करते है। इस method को आप Activity को inherit करने वाली क्लास में डिफाइन करते है। साथ ही ये क्लास onItemSelectedListener interface को भी implement करनी चाहिए।

इस method में आप AndroidView, View, position और spinner की id पास करते है।

public void onItemSelected (AdapterView av, View view, int posi, long id )
{
   // handle what you want to do here
}

आप चाहे तो यदि यूजर कुछ भी select ना करे तो ऐसी situation में भी आप कोई action ले सकते है इसके लिए आपको onNothingSelected() method को define करना होगा।

public void onNothingSelected(AdapterView av)
{
   // handle what you want to do here
}