Android
Hilandero
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
.
- 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"
- 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
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.
}