En una aplicación de Android, estoy cargando datos de un Db en un TableView
archivo Fragment
. Pero cuando recargo Fragment
, muestra los datos anteriores. ¿Puedo volver a completar el Fragment
con datos actuales en lugar de datos anteriores?
android
android-fragments
Samantha Withanage
fuente
fuente
Respuestas:
Creo que desea actualizar el contenido del fragmento al actualizar la base de datos
Si es así, separe el fragmento y vuelva a colocarlo.
Your_Fragment_TAG es el nombre que le dio a su fragmento cuando lo creó
Este código es para la biblioteca de soporte.
Si no es compatible con dispositivos más antiguos, use getFragmentManager en lugar de getSupportFragmentManager
[EDITAR]
Este método requiere que el Fragmento tenga una etiqueta.
En caso de que no lo tenga, entonces el método de @ Hammer es lo que necesita.
fuente
Esto actualizará el fragmento actual:
fuente
En caso de que no tenga la etiqueta de fragmento, el siguiente código funciona bien para mí.
fuente
getActivity()
en mi actividad. ¿Debería usarActivity.this...
?Puede actualizar su fragmento cuando sea visible para el usuario, simplemente agregue este código en su Fragmento, esto actualizará su fragmento cuando esté visible.
fuente
Para actualizar el fragmento, la respuesta aceptada no funcionará en Nougat y la versión superior. Para que funcione en todos los sistemas operativos, puede hacer lo siguiente.
fuente
No puede volver a cargar el fragmento mientras está adjunto a una actividad, donde obtiene una "
Fragment Already Added
" excepción.Por lo tanto, el fragmento debe separarse primero de su actividad y luego unirse. Todo se puede hacer usando la api fluida en una línea:
Actualización: Esto es para incorporar los cambios realizados en API 26 y superior:
Para obtener más descripción de la actualización, consulte https://stackoverflow.com/a/51327440/4514796
fuente
esto solo funcionará si usas
FragmentManager
para inicializar el fragmento. Si lo tiene como<fragment ... />
en XML, no volverá a llamaronCreateView
. Perdí mis 30 minutos para resolver esto.fuente
Aquí lo que hice y funcionó para mí, uso firebase y cuando el usuario inicia sesión, quería actualizar el Fragmento actual primero, necesitará el contexto de la actividad porque el fragmento no tiene una forma de obtener el contexto a menos que lo configure desde Actividad o contexto aquí es el código que usé y trabajé en el lenguaje kotlin, creo que podrías usar el mismo en la clase java
fuente
Use
ContentProvider
ay cargue sus datos usando un 'CursorLoader'. Con esta arquitectura, sus datos se volverán a cargar automáticamente en los cambios de la base de datos. Use frameworks de terceros para suContentProvider
- realmente no quiere implementarlo usted mismo ...fuente
Tuve el mismo problema, pero ninguno de los anteriores funcionó para el mío. o hubo un problema de backstack (después de cargar cuando el usuario presionó hacia atrás, volvería a usar el mismo fragmento) o no llamó al
onCreaetView
finalmente hice esto:
El buen punto es que tampoco necesita la etiqueta o la identificación del fragmento. si quieres recargar
fuente
Utilice el método onResume ... tanto en la actividad del fragmento como en la actividad que contiene el fragmento.
fuente
GeneralInfo
es mi clase de FragmentoGeneralInfo.java
Lo puse como método en la clase de fragmento:
fuente
Escriba viewpagerAdapter.notifyDataSetChanged (); en onResume () en MainActivity. Buena suerte :)
fuente
La manera más fácil
hacer un método estático público que contenga viewpager.setAdapter
hacer que el adaptador y el visor estén estáticos
llamar a cualquier lugar, cualquier actividad, cualquier fragmento.
fuente