Buscar..


Añadiendo un spinner a tu actividad.

En /res/values/strings.xml:

<string-array name="spinner_options">
    <item>Option 1</item>
    <item>Option 2</item>
    <item>Option 3</item>
</string-array>

En maquetación XML:

<Spinner
    android:id="@+id/spinnerName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_options" />

En Actividad:

Spinner spinnerName = (Spinner) findViewById(R.id.spinnerName);
spinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         String chosenOption = (String) parent.getItemAtPosition(position);
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {}
});

Ejemplo de Spinner básico

Spinner Es un tipo de entrada desplegable. En primer lugar en el diseño

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

Ahora, en segundo lugar, rellene los valores en el selector. Existen principalmente dos formas de completar los valores en el spinner .

  1. Desde el mismo XML, cree un array.xml en el directorio de valores bajo res . Crear esta array
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

Ahora agregue esta línea en sppiner XML

            android:entries="@array/defaultValue"
  1. También puede agregar valores a través de JAVA

si está utilizando en la activity cityArea = (Spinner) findViewById (R.id.cityArea); más si está utilizando en el fragment

cityArea = (Spinner) findViewById(R.id.cityArea);

Ahora crea una arrayList de Strings

ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
                            , android.R.layout.simple_list_item_1, area));

Esto se verá como

introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

De acuerdo a la versión del dispositivo Android, se renderizará estilo.

Los siguientes son algunos de los temas por defecto

Si una aplicación no solicita explícitamente un tema en su manifiesto, el Sistema Android determinará el tema predeterminado basado en el targetSdkVersion de la aplicación para mantener las expectativas originales de la aplicación:

Versión de Android SDK Tema predeterminado
Versión <11 @android: estilo / tema
Versión entre 11 y 13. @android: style / Theme.Holo
14 y más alto @android: style / Theme.DeviceDefault

Spinner se puede personalizar fácilmente con la ayuda de XML, por ejemplo

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

Crea un fondo personalizado en XML y úsalo.

Obtenga fácilmente la posición y otros detalles del elemento seleccionado en el girador

cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            areaNo = position;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

Cambia el color del texto del elemento seleccionado en spinner.

Esto se puede hacer de dos maneras en XML

<item android:state_activated="true" android:color="@color/red"/>

Esto cambiará el color del elemento seleccionado en la ventana emergente.

y desde JAVA haga esto (en el setOnItemSelectedListener (...))

 @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
            }


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow