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.
- Cómo abrir una ruleta con un solo clic cuando otra ruleta está abierta
- Android Spinner OnItemSelected no se llama con el mismo elemento
- Android cómo obtener el elemento seleccionado de data spinner
- Alinee los valores del hilador a la derecha en lugar de a la izquierda
- Cómo usar spinner
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.
- Cómo cambiar el elemento de una ruleta en ActionBar mediante programación
- Android Spinner - ¿Cómo hacer que la vista desplegable sea transparente?
- Cambiar el contenido de Spinner al abrir
- Spinner no parece apropiado
- Android: cómo puedo obtener el tamaño de la matriz de cadena?
- Spinner elemento prensado fondo azul
- Uso correcto de un Spinner, siguiendo las directrices de diseño del material
- Spinner que agrega la matriz de la secuencia en la selección del artículo cómo puede conseguir el valor relacionado artículo en androide
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.
- ¿Hay una manera de reproducir archivos de vídeo .flv en la aplicación de Android?
- Guardar SharedPreferences archivos en directorio personalizado o obtener predeterminado SharedPreferences dir