Tengo un ViewPager
con dos que ejemplifico en onCreate
de mi FragmentActivity
.Android - Viewpager y fragmentos, métodos que no funcionan
private List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this,Frag_1.class.getName()));
fragments.add(Fragment.instantiate(this,Frag_2.class.getName()));
this.vPagerAdapter = new Adapt(super.getSupportFragmentManager(),fragments);
vPager = (ViewPager) super.findViewById(R.id.pager);
vPager.setAdapter(vPagerAdapter);
Mi segunda Fragment
tiene un método dentro de esa llamada que actualizar mi ListView
-refreshList()
:
public class Frag_2 extends Fragment {
private ListView list;
private ArrayList<data> data;
private boolean firstCreation=true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRetainInstance(false);
}
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout, container, false);
list = (ListView) view.findViewById(R.id.lst);
//this.setRetainInstance(true);
return view;
}
public void refreshList(ArrayList <data> data){
if(data!=null){
ArrayAdapter<data> adapter = new Item_data_adapter(getActivity(),data);
list.setAdapter(adapter);}
}
}
llamado de mi FragmentActivity
//Something
Frag_2 fr = (Frag_2) vPagerAdapter.getItem(1);
if (fr.getView() != null) {
fr.refreshList(data);
}
Funciona bien hasta que cambie la orientación de la pantalla Corrígeme si me equivoco, pero estuve buscando por horas y no encontré una solución o una buena explicación, el FragmentActivity
se crea solo una vez y el Fragments
está conectado, pero el Fragments
se recrea en los cambios de configuración. Ahora, cuando cambia la orientación, no obtengo el View
de onCreate
, así que cuando intento obtener el View
del Fragment
, devuelve nulo y no se llama a mi método refreshList()
. ¿Cómo puedo arreglar esto?
Nadie sabe cómo hacerlo? – DLock
Estoy experimentando el mismo problema y no he encontrado una solución. Estoy empezando a pensar que hay un error en 'FragmentManager' u otra cosa, considerando que ambos estamos experimentando esto. – adneal
¿qué hay de tu diseño xml? esto no es un problema para los fragmentos estáticos declarados en el diseño de la actividad, pero este no es el caso para los fragmentos dinámicos – chip