Bestimmtes Fragment öffnen

  • 0 Antworten
  • Letztes Antwortdatum
K

Kellrkind

Neues Mitglied
0
Hey Leute

ich wieder mal :smile:

das Google Maps Problem hab ich hingekriegt, irgendwie ^^
Jetzt häng ich aber schon wieder...

Zur Geschichte:
Hab mir das ganze Gerüst mit ViewPager und Fragments selber durch Tutorials beigebracht und ich bin stolz dass es läuft :) :)

Nun folgendes Anliegen:

Ich erstelle ca. 150 Fragments bei denen ich hin und her swipen kann.
Jedem davon gebe ich eine ID mit um dazu die benötigten Infos zu holen.

Nur wenn ich z.B. in der Liste auf Nummer 20 tippe öffnet es mir trotzdem das erste Fragment.
Wie kann ein gezieltes Fragment starten? Bzw. gleich dahin navigieren?

Ich find über google nix...

Hier ein bisschen Code:
Meine PageViewActivity Klasse auf die Zugegriffen wird wenn eines der Listenelemente angetippt wird
Code:
public class PageViewActivity extends FragmentActivity {
	MyPageAdapter pageAdapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Bundle zielkorb = getIntent().getExtras();
		int id = zielkorb.getInt("datenpaket1");
		setContentView(R.layout.activity_main);
		List<Fragment> fragments = getFragments();
		pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments, id);
		ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
		pager.setAdapter(pageAdapter);
		Log.d("PageActivity", String.valueOf(id));
	}

	private List<Fragment> getFragments() {
		Appebene appebene = new Appebene();
		List<Fragment> fList = new ArrayList<Fragment>();
		final List<Bude> uebersicht = appebene.holeUebersicht();
		
		for(int i = 0; i < uebersicht.size(); i++){
			fList.add(Bude_Info.newInstance(uebersicht.get(i).getId()));
		}

		return fList;
	}
}

Die kommunziert mit dem PageAdapter:
Code:
class MyPageAdapter extends FragmentPagerAdapter {
	private List<Fragment> fragments;

	public MyPageAdapter(FragmentManager fm, List<Fragment> fragments, int id) {
		super(fm);
		this.fragments = fragments;

	}

	@Override
	public Fragment getItem(int position) {
		return this.fragments.get(position);
	}

	@Override
	public int getCount() {
		return this.fragments.size();
	}
}

Die Klasse wo die einzelnen Fragments "gebaut" werden (fällt kein guter Begriff ein) ist denk ich unrelevant. Wenn trotzdem Interesse bzw. Bedarf besteht poste ich Sie.

Hoffe Ihr könnt mir weiterhelfen :smile:

Daaaaanke!
Grüße
Kellrkind

Der ursprüngliche Beitrag von 22:13 Uhr wurde um 22:24 Uhr ergänzt:

Ok hat sich erledigt...

:mellow:

War zu schnell mit dem Posting und habs dann doch noch rausgefunden :glare:

Falls es jemand interessiert:

Lösung ist
Code:
static void callFragment(int num) {
		pager.setCurrentItem(num);
	}

in die Activity (in meinem Beispiel PageViewActivity) und die Methode bei "OnCreate" ansprechen...
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
476
AnnaBauer21
AnnaBauer21
AnnaBauer21
Antworten
6
Aufrufe
948
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten