coper_8888
22/07/14, 10:46:18
Buenas,
Estoy teniendo problemas para mostrar unos datos en la primera página del viewpager en Android.
Resulta que se cargan los datos que corresponden a la segunda ventana, cuando esta es destruida y vuelvo sobre la primera página, entonces si que aparecen los datos que corresponden.
Pongo a continuación mi código por si alguien se le ocurre algo o puede ayudarme.
El código del adaptador es el siguiente:
public static class MyPagerAdapter extends SmartFragmentStatePagerAdapter
{
private ArrayList<EjercicioWS> items;
public MyPagerAdapter(FragmentManager fragmentManager)
{
super(fragmentManager);
initPages();
}
private void initPages()
{
items = new ArrayList<EjercicioWS>();
}
@Override
public Fragment getItem(int pos)
{
int ejerCal = listaEjerCalentamiento.size();
int ejerPrin = listaEjerPrincipal.size();
int ejerVuelta = listaEjerVueltaCalma.size();
items.clear();
if (pos < ejerCal)
{
EjercicioWS ejCal = (EjercicioWS) listaEjerCalentamiento.get(pos);
items.add(ejCal);
}else if(pos - ejerCal < ejerPrin){
items.add((EjercicioWS) listaEjerPrincipal.get(pos - ejerCal));
}else{
EjercicioWS ejVuelta = (EjercicioWS) listaEjerVueltaCalma.get(pos - ejerCal - ejerPrin);
items.add(ejVuelta);
}
return PrimerFragment.newInstance(items, pos);
}
@Override
public int getCount()
{
return resultadoTotalPaginas;
}
}
Como podéis comprobar, utilizo 3 arrays que contienen ejercicios, la idea es crear mediante un viewpager, una pantalla para cada ejercicio, al ir pasando hacía la derecha que se actualice el ejercicio.
El codigo de la implentación es el siguiente:
viewPager_EntrenoDiario = (ViewPager) findViewById(R.id.viewPager_entreno_diario);
adapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager_EntrenoDiario.setAdapter(adapter);
Simplemente asigno el adaptador al viewpager, como digo, funciona bien pero la primera vez, la pantalla de inicio muestra el segundo ejercicio, si paso a la siguiente ventana y vuelvo a la primera, ya si aparecen los datos correctos.
Si alguien puede echarme una mano, sería de gran ayuda.
Un saludo, gracias!!
P.D Solucionado, encontré una forma de poder forzar para cargar la primera página, en cuanto tenga tiempo publico por si le sirve de solución a cualquiera que ande con el mismo problema.
Estoy teniendo problemas para mostrar unos datos en la primera página del viewpager en Android.
Resulta que se cargan los datos que corresponden a la segunda ventana, cuando esta es destruida y vuelvo sobre la primera página, entonces si que aparecen los datos que corresponden.
Pongo a continuación mi código por si alguien se le ocurre algo o puede ayudarme.
El código del adaptador es el siguiente:
public static class MyPagerAdapter extends SmartFragmentStatePagerAdapter
{
private ArrayList<EjercicioWS> items;
public MyPagerAdapter(FragmentManager fragmentManager)
{
super(fragmentManager);
initPages();
}
private void initPages()
{
items = new ArrayList<EjercicioWS>();
}
@Override
public Fragment getItem(int pos)
{
int ejerCal = listaEjerCalentamiento.size();
int ejerPrin = listaEjerPrincipal.size();
int ejerVuelta = listaEjerVueltaCalma.size();
items.clear();
if (pos < ejerCal)
{
EjercicioWS ejCal = (EjercicioWS) listaEjerCalentamiento.get(pos);
items.add(ejCal);
}else if(pos - ejerCal < ejerPrin){
items.add((EjercicioWS) listaEjerPrincipal.get(pos - ejerCal));
}else{
EjercicioWS ejVuelta = (EjercicioWS) listaEjerVueltaCalma.get(pos - ejerCal - ejerPrin);
items.add(ejVuelta);
}
return PrimerFragment.newInstance(items, pos);
}
@Override
public int getCount()
{
return resultadoTotalPaginas;
}
}
Como podéis comprobar, utilizo 3 arrays que contienen ejercicios, la idea es crear mediante un viewpager, una pantalla para cada ejercicio, al ir pasando hacía la derecha que se actualice el ejercicio.
El codigo de la implentación es el siguiente:
viewPager_EntrenoDiario = (ViewPager) findViewById(R.id.viewPager_entreno_diario);
adapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager_EntrenoDiario.setAdapter(adapter);
Simplemente asigno el adaptador al viewpager, como digo, funciona bien pero la primera vez, la pantalla de inicio muestra el segundo ejercicio, si paso a la siguiente ventana y vuelvo a la primera, ya si aparecen los datos correctos.
Si alguien puede echarme una mano, sería de gran ayuda.
Un saludo, gracias!!
P.D Solucionado, encontré una forma de poder forzar para cargar la primera página, en cuanto tenga tiempo publico por si le sirve de solución a cualquiera que ande con el mismo problema.