Tengo una vista con una ruleta. La actividad inicia otra actividad con una ventana emergente donde agrego o elimino valores que el padre muestra en el Spinner. Por lo tanto, en onActivityResult(), actualizo el contenido del Spinner para que refleje cualquier valor adicional o eliminado llamando al método fillSpinner(). El parámetro de este método es el valor previamente seleccionado:Refreshing a Spinner
private void fillSpinner(String value){
Cursor c = mDbHelper.getAllCategories();
startManagingCursor(c);
c.moveToFirst();
String[] from = new String[]{DBAdapter.KEY_CATEGORY};
SimpleCursorAdapter scCats = new SimpleCursorAdapter(
this, android.R.layout.simple_spinner_item,c,from,
new int[]{android.R.id.text1});
scCats.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
category.setAdapter(scCats);
if (value != null && value != "") {
category.setSelection((int)mDbHelper.categoryIndex(value));
}
}
Al abrir la Spinner, que contiene la lista correcta (es decir, se actualiza) y se selecciona el valor correcto. Sin embargo, el control de Spinner en sí mismo (en su estado cerrado) no muestra el valor seleccionado, sino el primero en la lista.
Cuando paso por el código en el depurador, el valor de Spinner es correcto antes y después de llamar a setSelection() (y siempre se llama con la misma identificación correcta). Sin embargo, como no puedo salir del evento, cuando reanudo la ejecución después de un breve momento, el valor en el Spinner cambia.
En otras palabras, la cadena visualizada del giradiscos se cambia y es diferente del elemento seleccionado cuando regreso de mi actividad emergente.
Se aprecian todas las ideas.
¡Gracias! Trabajó para mi. – Yellos