2012-04-13 5 views
6

Der einzige dokumentierte Weise, die ich gefunden ist:Wie kann ich einen Verweis auf ein Fragment in einem ViewPager erhalten?

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

Aber da das Fragment in einem ViewPager instanziiert Ich habe keine 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())); 

Dank

+1

Hier gilt das gleiche Problem. Scheint in http://stackoverflow.com/questions/7379165/update-data-in-listfragment-as-part-of-viewpager gelöst zu werden. – yuku

Antwort

5

Sie erscheinen alle Fragmente im Speicher in einer ach so veraltet Vector zu halten. In diesem Fall würden Sie Ihr Fragment aus demselben Vector abrufen. Rufen Sie z. B. getCurrentItem() unter ViewPager auf, um den aktuell ausgewählten Fragmentindex zu finden, und rufen Sie dann get() über Vector mit diesem Index auf.

Hinweis: Wenn Sie sich auf FragmentPagerAdapter oder verlassen, um Ihre Fragmente zu halten, ist ein Fragment für einen bestimmten Index möglicherweise nicht vorhanden, weil es noch nicht erstellt oder verworfen wurde, um Speicherverbrauch zu minimieren .

(BTW, siehe Why is Java Vector class considered obsolete or deprecated? für mehr auf Vector)

Verwandte Themen