Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 06/01/14, 15:43:31
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 860
Tu operador: Pepephone

Recargar Fragment

Buenas tengo una aplicación con un único activity el cual dependiendo de X valores me carga un fragment u otro en pantalla mostrandome así un layout inflado que yo quiero.

En concreto este fragment hago consultas a base de datos que me muestra en pantalla y en la actionabar un boton añadir.

Como podría recargar este fragment despues de pulsar ese boton añadir para que me aparezca el nuevo dato insertado???

Si recargo el activity pierdo mi fragment ya que para llegar a ese frament hay q pulsar varias opciones, por eso quiero repintar de nuevo todo el fragment q se ejecute de nuevo el oncreate y eso para que realice las llamadas a bbdd y pinte el nuevo dato.

sl2
__________________
Responder Con Cita


  #2  
Viejo 06/01/14, 16:03:16
Array

[xs_avatar]
neoadn neoadn no está en línea
Usuario muy activo
 
Fecha de registro: abr 2010
Localización: Orense
Mensajes: 632
Modelo de smartphone: Redmi Note 4
Tu operador: Movistar
Si el método de recarga de fragment es una variable .. Puedes guardar la variable con sharedpreferences. Y en onresume puedes añadir que recargue el ftagment última vez visto. Luego con finish() limpias el dato de ultima vez visto... Y debería de funcionar.

Es que como no se como es el código no puedo concretar más.

Espero que te valga para algo
__________________
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 06/01/14, 17:26:41
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Puedes crear el mismo Fragment y colocarlo en el lugar del antiguo.

Aún así, si no he entendido mal, lo que quieres hacer es actualizar el contenido del Fragment, no el Fragment en sí. ¿No es más fácil crear un método que actualice las Views del Fragment (llamadas a la BD incluidas) y llamarlo desde la Activity? Además de más fácil, es mucho más limpio.
Responder Con Cita
  #4  
Viejo 06/01/14, 23:10:14
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 860
Tu operador: Pepephone

 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Puedes crear el mismo Fragment y colocarlo en el lugar del antiguo.

Aún así, si no he entendido mal, lo que quieres hacer es actualizar el contenido del Fragment, no el Fragment en sí. ¿No es más fácil crear un método que actualice las Views del Fragment (llamadas a la BD incluidas) y llamarlo desde la Activity? Además de más fácil, es mucho más limpio.
En principio he salido del paso creando de nuevo el Fragment y colocandolo en el lugar del antiguo.

Lo otro no me queda muy claro.

Tengo mi clase Main
donde cargo el Fragment


 Cita:
private void seleccionItem(int position) {

Fragment fragment = null;
Bundle args = new Bundle();

switch (position) {
case -1:
fragment = new Home();
break;

case 1:
fragment = new participantes();
break;

default:

fragment = new correos();
args.putInt("SELECCION", position);
break;
}

if (fragment != null) {
fragment.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.co ntent_frame, fragment).commit();

} else

Log.e("Error", "Error al crear fragment");

}

Y en la clase participantes el cual hereda de Fragment tengo el codigo donde llamo a bbdd y lleno los view.
Aqui manejo la actionbar el cual tengo un boton para agregar.
Los view los cargo en el oncreateview

 Cita:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.acb_part, menu);

MenuItem item = menu.findItem(R.id.action_add_part);

item.setOnMenuItemClickListener(new OnMenuItemClickListener() {

@Override
public boolean onMenuItemClick(MenuItem item) {


double valorAleatorio = Math.random()*(100-50)+2;
consultas.InsertParticipantes(Double.toString(valo rAleatorio));


Fragment fragment = null;
fragment = new participantes();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.co ntent_frame, fragment).commit();



return true;
}
});

super.onCreateOptionsMenu(menu, inflater);
}
No se me ocurre como llenar los view del fragment desde fuera...
__________________
Responder Con Cita
  #5  
Viejo 07/01/14, 01:49:54
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
La mejor forma es tener un método público en el Fragment que actualice las Views del Fragment, y a este método lo llamas cuando quieras actualizar el contenido del Fragment. Si en participantes tienes un método que hace invisible (por poner un ejemplo) un botón, y ese método es público, podrás llamarlo perfectamente desde la Activity.

Pero claro, viendo tu código creo que lo mejor es volver a crear el Fragment, porque parece por lo poco que se ve que estando en cualquier otro Fragment puedo añadir participantes, y en ese caso mostrar el Fragment de los participantes.
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 07/01/14, 14:15:49
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
Loaders

Si usas un Loader para cargar los datos de la BD, "en teoría" (porque en stackoverflow lees cantidad de problemas) el Loader puede mantener vigilancia sobre los datos y cuando estos se modifiquen, recargar la lista (o el sistema que uses para mostrar datos) y ya sólo te quedaría recargar el adaptador de datos para mostraslos nuevamente.

http://developer.android.com/guide/components/loaders.html
"They monitor the source of their data and deliver new results when the content changes" ... que dice literalmente Google.

Salu2
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 07/01/14, 14:33:27
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 860
Tu operador: Pepephone

 Cita: Originalmente Escrito por kriogeN Ver Mensaje
La mejor forma es tener un método público en el Fragment que actualice las Views del Fragment, y a este método lo llamas cuando quieras actualizar el contenido del Fragment. Si en participantes tienes un método que hace invisible (por poner un ejemplo) un botón, y ese método es público, podrás llamarlo perfectamente desde la Activity.

Pero claro, viendo tu código creo que lo mejor es volver a crear el Fragment, porque parece por lo poco que se ve que estando en cualquier otro Fragment puedo añadir participantes, y en ese caso mostrar el Fragment de los participantes.
en realidad no... modifico mi actionbar a conveniencia con setHasOptionsMenu(true); y ya inflo el actionbar con el boton añadir porque estoy en este fragment para otros no existe ese boton,

Voy a rearmar todo con el metodo publico jeje esque de java soy algo novato y aveces hago la cosa mas dificil y la más tonta no se me pasa por la cabeza,

Gracias a todos
__________________
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 22:45:20 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /