Refrescar un Spinner

Tengo una vista con una ruleta. La actividad comienza otra acvitity con un popup 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 a mi método fillSpinner (). El parámetro de este método es el valor previamente seleccionado:

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)); } } 

Cuando abro el Spinner, contiene la lista correcta (es decir, se actualizó) y se selecciona el valor correcto. Sin embargo, el control Spinner sí mismo (en su estado cerrado) no muestra el valor seleccionado, sino el primero en la lista.

Cuando paso a través del código en el depurador, el valor de Spinner es correcto antes y después de llamar a setSelection () y siempre se llama con el mismo id correcto. 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 mostrada del hilandero es cambiada y es diferente del elemento seleccionado cuando vuelvo de mi actividad emergente.

Cualquier idea es apreciada.

Encontré una solución simple a ese problema: Utilice el formulario Spinner.setSelection (int position, Boolean NavigateTo) para que el Spinner muestre el elemento correcto seleccionado.

Ejemplo: Spin.setSelection (iPos, true);

Buena suerte.

El problema, creo, se debió a que mi cursor se recreaba en cada llamada. No tengo una mejor explicación. Este puesto me indicó indirectamente en la dirección correcta.

Al mantener el cursor después de crearlo inicialmente, pude llamar a la consulta () después de cambiar los datos de la lista, en lugar de ejecutar el método en mi pregunta. Funciona bien ahora.

  • Cómo mover la flecha giratoria de Android Spinner más cerca de la que está emitiendo texto
  • Eliminación del margen de la lista desplegable de hilanderos
  • Cómo ocultar un elemento en un Spinner de Android
  • ¿Cómo recuperar un ID del elemento seleccionado en un Spinner dinámico?
  • Cómo deshabilitar onItemSelectedListener que se invocará al configurar el elemento seleccionado por código
  • ¿Diversas vistas para el artículo del hilandero y del hilandero?
  • Android - Set Spinner Punto de inicio
  • Cómo ocultar spinner dropdown android
  • SetOnItemSelectedListener de Spinner no llama
  • Alternativa a la CLASE SPINNER ALTAMENTE FLAWED en Android
  • ¿Cómo establecer el valor predeterminado de Spinner por su valor en lugar de su posición?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.