2013-09-26 21 views
5

के साथ प्रवेश वैल्यू का उपयोग करके मैं अपने LinearLayout के अंदर Spinner तत्व बना देता हूं। मैं मूल्यों को दृश्यमान से अलग करना चाहता हूं। मैं प्रोग्रामेटिक रूप से ऐसा नहीं करना चाहता हूं। मैं नीचे दिए गए सरणी का उपयोग करना चाहता हूं।स्पिनर तत्व

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string-array name="select"> 
     <item>a</item> 
     <item>b</item> 
     <item>c</item> 
    </string-array> 

    <integer-array name="selectValues"> 
     <item>1</item> 
     <item>2</item> 
     <item>3</item> 
    </integer-array> 

</resources> 

बस। यदि a चयनित आइटम है, तो मैं पूर्णांक के रूप में 1 प्राप्त करना चाहता हूं। रास्ता क्या है?

<Spinner 
     android:id="@+id/sSelect" 
     android:layout_width="179dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center" 
     android:entries="@array/select" 
     android:entryValues="@array/selectValues" /> 

जब मैं नीचे से ऊपर उपयोग करता हूं।

public void onItemSelected(AdapterView<?> item, View arg1, int sort, 
      long arg3) { 
     // TODO Auto-generated method stub 
     String selectedItem = item.getItemAtPosition(sort).toString(); 
} 

मैं डेटा को स्ट्रिंग के रूप में प्राप्त कर सकता हूं और मूल्य नहीं। मैं दिखाई देने वाले मान प्राप्त कर सकता हूं।

+0

के संभावित डुप्लिकेट [एंड्रॉयड - स्पिनर कॉन्फ़िगर सरणी का उपयोग करने] (http://stackoverflow.com/questions/1587028/android-configure-spinner-to-use-array) – naXa

उत्तर

12

चयनित मानों को TypedArray के रूप में रखें और onItemSelected() विधि में उन तक पहुंचें।

// Keep the selected values as TypedArray 
Resources res = getResources(); 
final TypedArray selectedValues = res 
     .obtainTypedArray(R.array.selectValues); 

Spinner spinner = ((Spinner) findViewById(R.id.sSelect)); 
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     //Get the selected value 
     int selectedValue = selectedValues.getInt(position, -1); 
     Log.d("demo", "selectedValues = " + selectedValue); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 
}); 
+0

आप मेरे बारे में जानकारी दे सकते हैं संसाधन और getResources समारोह? –

+0

['getResources()'] (http://developer.android.com/reference/android/content/Context.html#getResources()) एक ऐसी विधि है जिसे आप किसी भी गतिविधि वर्ग से एक्सेस कर सकते हैं। – imranhasanhira

+0

दुर्भाग्य से मुझे त्रुटि बंद हो रही है? –

संबंधित मुद्दे