Próbuję zmienić fragment strony podglądu, klikając przycisk. Mam 5 fragmentów, każdy fragment ma swój własny plik xml (frag1.xml, frag2.xml i tak dalej). Każdy fragment ma 5 przycisków, które powinny przejść na inne strony przeglądarki. Ale problem polega na tym, jak sprawdzić FragmentPageAdapter, który przycisk jest kliknięty i jak się tam dostać?Zmień fragment strony podglądu za pomocą przyciskuKliknij
Pokażę kod, który mam, wtedy powinno być jasne, myślę. Pomyśl o tym jak o ekranie głównym, który ma kropki na dole, a ja klikniesz pewną kropkę, przejdziesz do odpowiedniego ekranu.
FragmentPagerAdapter
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
final int PAGE_COUNT = 6;
/** Constructor of the class */
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
/** This method will be invoked when a page is requested to create */
@Override
public Fragment getItem(int arg0) {
switch(arg0){
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
case 3:
return new Fragment4();
case 4:
return new Fragment5();
default:
return null;
}
}
/** Returns the number of pages */
@Override
public int getCount() {
return PAGE_COUNT;
}
}
Frag1.java
public class Frag1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.frag_one, container, false);
OnClickListener changeFrag = new OnClickListener() {
@Override
public void onClick(View v) {
/*When I click this button in my fragment, I'd like it to go to fragment 3 for example*/
}
};
ImageButton btnT = (ImageButton) v.findViewById(R.id.frag3);
btnT.setOnClickListener(changeFrag);
return v;
}
}
główną działalność
public class główną działalność rozciąga FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);/** Getting a reference to the ViewPager defined the layout file */
ViewPager pager = (ViewPager) findViewById(R.id.pager);
/** Getting fragment manager */
FragmentManager fm = getSupportFragmentManager();
/** Instantiating FragmentPagerAdapter */
MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);
/** Setting the pagerAdapter to the pager object */
pager.setAdapter(pagerAdapter);
//pager.setPageTransformer(true, new ZoomOutPageTransformer());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Czy coś takiego jest możliwe? Czy ktoś może mi pomóc we właściwym kierunku, proszę?
tak? https://stackoverflow.com/questions/39500413/change-viewpager-fragment-from-child-fragment –