2012-03-08 14 views

Respuesta

24

Trate de usar este adaptador para su spinner:

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; 
    } 
}; 

Añadir este XML a su disposición,

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" /> 

Y por último,

spinner.setAdapter(adapter); 
1

Intenta comprender que está utilizando la lista desplegable según lo dispuesto por los valores predeterminados que están disponibles en el SDK.

SIMPLY haga su propia distribución con un adaptador personalizado.

14

simple y nítido ....

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

Justo lo que necesitaba. Sin embargo, si haces esto en la función onCreate() de tu actividad, con your_spinner.setOnItemSelectedListener(), no te olvides de evitar que onCreate aparezca cuando la orientación de tu móvil cambie con porque de lo contrario obtendrá un error nulo. –

4

La forma más simple es:

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

npe: (.............. – kgandroid

+4

Devuelve nullpointerexception – ManishSB

3

Una alternativa más corta a la respuesta Andro'd es dejar que el ArrayAdapter crear las vistas de elementos para que a partir de un diseño de recursos:

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); 

a continuación, el estilo de su texto para adaptarse a sus necesidades en 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" 
/> 

Nota: my_spinner_dropdown_item se utiliza cuando la lista de opciones aparece

Para más información lea la documentación Spinners.

Cuestiones relacionadas