2012-01-20 23 views
12

Estoy tratando de hacer una ruleta completamente personalizada. Me encuentro con dificultades para hacer el diseño que aparece cuando presionas sobre él. Aquí está mi código para mi adaptador:Android: Disposición de Spinner personalizada

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.my_array, R.layout.spinnertext); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

De lo que he leído en la documentación, el diseño utilizado apears que será establecido por la línea:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

Aunque cada vez que cambie a una nuevo diseño que hago, hace que la aplicación falle cuando intento usar el spinner. Intenté buscar qué aspecto tiene "android.R.simple_spinner_dropdown_item" para ver si me falta algo.

Todos mis diseños que he probado han sido diseños lineales o relativos, con solo un textView.

¿Cómo puedo hacer un diseño personalizado emergente cuando se selecciona la ruleta?

Respuesta

22

row.xml para configurar la disposición de cada fila (en este caso: una imagen y un texto cada fila):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/icon"/> 

    <TextView 
     android:id="@+id/weekofday" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

Java:

public class AndroidCustomSpinner extends Activity { 

String[] DayOfWeek = {"Sunday", "Monday", "Tuesday", 
    "Wednesday", "Thursday", "Friday", "Saturday"}; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Spinner mySpinner = (Spinner)findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     R.layout.row, R.id.weekofday, DayOfWeek); 
     mySpinner.setAdapter(adapter); 
    } 
} 
+0

no he tenido tiempo de ayer. Edité mi publicación :) – Prexx

+2

¿El enlace está roto? No puedo ver el tutorial. – alaeri

+0

Sí, enlace muerto ... –

Cuestiones relacionadas