entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Llenar un CustomSpinner

Que tal, tengo una duda, estoy utilizando un Spinner personalizado que alguien ya hizo y tiene material design, generalmente esta es la estructura de un Spinner normal en Android

<Spinner
    android:id="@+id/CustoSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/Color"
    android:spinnerMode="dropdown"
    android:popupBackground="@drawable/flotante"
    />

En un Spinner normal lo lleno de elementos desde Strings de esta manera:

    customSpinner = (Spinner) findViewById(R.id.CustomSpinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.prueba, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        customSpinner.setAdapter(adapter);

En mi archivo de Strings.xml tengo este array con los datos para el Spinner:


    <string-array name="prueba">
        <item>Aguascalientes</item>
        <item>Baja California</item>
        <item>Baja California Sur</item>
        <item>Campeche</item>
        <item>Chiapas</item>
        <item>Chihuahua</item>
        <item>Coahuila</item>
        <item>Colima</item>
        <item>Distrito Federal</item>
        <item>Durango</item>
        <item>Estado de México</item>
        <item>Guanajuato</item>
        <item>Guerrero</item>
        <item>Hidalgo</item>
        <item>Jalisco</item>
        <item>Michoacán</item>
        <item>Morelos</item>
        <item>Nayarit</item>
        <item>Nuevo León</item>
        <item>Oaxaca</item>
        <item>Puebla</item>
        <item>Querétaro</item>
        <item>Quintana Roo</item>
        <item>San Luis Potosí</item>
        <item>Sinaloa</item>
        <item>Sonora</item>
        <item>Tabasco</item>
        <item>Tamaulipas</item>
        <item>Tlaxcala</item>
        <item>Veracrúz</item>
        <item>Yucatán</item>
        <item>Zacatecas</item>
    </string-array>

Ahora mi pregunta sería como hacer lo anterior pero con este Spinner personalizado que luce como está a continuación:

    <com.rey.material.widget.Spinner
        style="@style/Material.Widget.Spinner"
        android:id="@+id/CustomSpinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:rd_style="@style/Material.Drawable.Ripple.Wave"
        android:layout_above="@+id/clii"
        android:layout_centerHorizontal="true" />

Pregunto eso porque Android no lo reconoce como un Spinner tal cual, mandaría un error como

com.rey.material.widget.Spinner cannot be cast to android.widget.Spinner

o algo así, no se si saben algo acerca de esto, estoy empezando a usar este tipo de cosas y no tengo idea.
Gracias de antemano.

1 Respuesta

2votos

cobasESP Puntos19650

El error esta aqui:

customSpinner = (Spinner) findViewById(R.id.CustomSpinner);

Casteas el widget spinner como spinner, tienes que cambiar spinner por el paquete donde este el custom spinner.

customSpinner = (com.rey.material.widget.Spinner) findViewById(R.id.CustomSpinner);

De esta forma si, porque un spinner se llena de la misma manera, no creo que un spinner personalizado ya no sea un spinner no crees? Prueba y nos cuentas.

0voto

x4mp73r comentado

Ah, tienes razón @cobasESP creo que así es, era muy simple gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta