2012-04-13 19 views
6

La única forma documentada que he encontrado es:¿Cómo puedo obtener una referencia a un Fragmento en una ViewPager?

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment); 

Pero dado que el fragmento se instancia en un ViewPager no tengo un id.

List<Fragment> fragments = new Vector<Fragment>(); 
    fragments.add(Fragment.instantiate(this, Fragment1.class.getName())); 
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName())); 
    fragments.add(Fragment.instantiate(this, Fragment3.class.getName())); 

Gracias

+1

mismo problema aquí. Parece que se resuelve en http://stackoverflow.com/questions/7379165/update-data-in-listfragment-as-part-of-viewpager. – yuku

Respuesta

5

Usted parece que se aferran todos los fragmentos de memoria en un oh-tan-obsoletos Vector. En ese caso, recuperarías tu fragmento de ese mismo Vector. Por ejemplo, llame al getCurrentItem() en el ViewPager para buscar el índice del fragmento seleccionado actualmente, luego llame al get() en el Vector con ese índice.

Tenga en cuenta, sin embargo, que si usted está confiando en FragmentPagerAdapter o FragmentStatePagerAdapter para mantener sus fragmentos, que no puede existir un fragmento de un índice determinado, ya sea porque no se ha creado todavía o ha sido descartado para reducir al mínimo el consumo de memoria .

(Por cierto, ver Why is Java Vector class considered obsolete or deprecated? para más información sobre Vector)

Cuestiones relacionadas