2012-03-08 19 views

उत्तर

24

अपने स्पिनर के लिए इस एडाप्टर का उपयोग कर प्रयास करें:

ArrayAdapter<String> adapter = 
    new ArrayAdapter<String>(Home.Home_Group, R.layout.my_spinner_style, yourstringarray) 
{ 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = super.getView(position, convertView, parent); 

     ((TextView) v).setTextSize(16); 
     ((TextView) v).setTextColor(
      getResources().getColorStateList(R.color.white) 
     ); 

     return v; 
    } 

    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     View v = super.getDropDownView(position, convertView, parent); 
     v.setBackgroundResource(R.drawable.spinner_bg); 

     ((TextView) v).setTextColor(
      getResources().getColorStateList(R.color.spinner_text) 
     ); 

     ((TextView) v).setTypeface(fontStyle); 
     ((TextView) v).setGravity(Gravity.CENTER); 

     return v; 
    } 
}; 

अपने लेआउट को यह एक्सएमएल जोड़ें,

my_spinner_style.xml

<?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+android:id/text1" 
     style="?android:attr/spinnerItemStyle" 
     android:singleLine="true" 
     android:textColor="#ffffff" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" /> 

और अंत में,

spinner.setAdapter(adapter); 
1

समझ है कि आप ड्रॉपडाउन सूची के रूप में उपयोग कर रहे हैं चूक कि एसडीके में उपलब्ध हैं द्वारा प्रदान की कोशिश करें।

सरल कस्टम एडाप्टर के साथ अपना स्वयं का लेआउट बनाएं।

3

आप पाठ का रंग बदलना चाहते हैं: Spinner Widgets Text Color

वरना, अपने स्वयं के लेआउट बनाने का सबसे अच्छा तरीका की तरह JoxTraex कहा है।

14

सरल और कुरकुरा ....

private OnItemSelectedListener your_spinner _name= new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
      long id) { 

     ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE); 


    } 

    public void onNothingSelected(AdapterView<?> parent) { 

    } 
}; 
+0

बस मुझे जो चाहिए था। यदि आप इसे अपने आप में करते हैं गतिविधि के ऑनक्रेट() फ़ंक्शन हालांकि, your_spinner.setOnItemSelectedListener() के साथ, <गतिविधि ... एंड्रॉइड: configChanges = "ओरिएंटेशन | स्क्रीन साइज" के साथ आपके मोबाइल परिवर्तनों के अभिविन्यास के दौरान दिखाई देने के लिए क्रिएट को रोकने के लिए मत भूलना ... /> क्योंकि आपको अन्यथा एक शून्य त्रुटि मिल जाएगी। –

4

सरलतम रूप है:

m_spnDia = (Spinner)findViewById(R.id.spiDia); 
TextView oTextView = (TextView)m_spnDia.getChildAt(0); 
oTextView.setTextColor(Color.RED); 
+2

एनपी: (.............. – kgandroid

+4

वापस nullpointerexception देता है – ManishSB

3

Andro'd जवाब देने के लिए एक छोटा विकल्प ArrayAdapter एक लेआउट से आप के लिए आइटम दृश्य बना देना है संसाधन:

final List<String> values = [SPINNER VALUES]; 
final ArrayAdapter<String> adapter = new ArrayAdapter<>(
    activity, R.layout.my_spinner_item, values); 
adapter.setDropDownViewResource(R.layout.my_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

फिर my_spinner_item.xml में आपकी आवश्यकताओं के अनुरूप करने के लिए अपने पाठ शैली:

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="@style/my_spinner_item_style" 
/> 

नोट: my_spinner_dropdown_item प्रयोग किया जाता है जब विकल्पों की सूची में दिखाई देते हैं

अधिक जानकारी के लिए Spinners दस्तावेज़ पढ़ें।

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