Tengo una actividad con una ruleta, y me preguntaba si es posible cerrar la ruleta programáticamente, si el usuario la ha abierto.Android spinner cerrar
Toda la historia es que en el fondo estoy ejecutando un proceso en un hilo separado. Cuando el proceso ha terminado, invoco un controlador en la actividad principal y, dependiendo del resultado, realizo algunas tareas. Es entonces cuando quiero cerrar la ruleta, si el usuario la ha abierto.
La ruleta está en la disposición main.xml:
<Spinner android:id="@+id/birthPlaceSpinner" android:layout_weight="1"
android:layout_height="wrap_content" android:prompt="@string/select"
android:layout_width="fill_parent" />
y este es el Handler:
private class BirthplaceChangedHandler extends Handler {
@Override
public void handleMessage(Message msg) {
String placeFilterStr = birthPlaceFilterText.getText().toString();
if ("".equals(placeFilterStr) || placeFilterStr == null || validNewAddresses.isEmpty()) {
birthPlaceSpinner.setEnabled(false);
hideGeoLocationInformation();
} else {
birthPlaceSpinner.setEnabled(true);
}
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.multiline_spinner_dropdown_item, validNewAddressesStr)
birthPlaceSpinner.setAdapter(adapter);
}
}
Salud!
Cómo estás creando/iniciar la ruleta? Lo que quiere hacer es casi seguro que es posible, pero no ha dado suficiente información para responder su pregunta. Los fragmentos de código ayudan. –
Sobrescribir 'Spinner.onDetachedFromWindow', hacerlo público y llamar manualmente fue la única manera que funcionó para mí. Seguí http://stackoverflow.com/a/21122845/369317 –