2017-07-06 10 views
0

新しいコードを記述しました。私は、タブとフラグメントの作成に関するチュートリアルに従った。私のアプリは今すぐツールバーに3つのタブを持ち、クリックするとそれぞれのレイアウトに変わります。私は今、ツールバーを使うのではなく、それらのレイアウトに私を連れて行くボタンを追加したいので、私はそれを移動して、私が望むところに置くことができます。ボタンでタブビューを変更する

これは私が私のMainActivityに持っているもの

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager()); 

    //Set up the ViewPager with the sections adapter. 
    mViewPager = (ViewPager) findViewById(R.id.container); 
    setupViewPager(mViewPager); 

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(mViewPager); 
} 

private void setupViewPager(ViewPager viewPager) { 
    SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new Main2Activity(), "TAB1"); 
    adapter.addFragment(new Main3Activity(), "TAB2"); 
    adapter.addFragment(new Main4Activity(), "TAB3"); 
    viewPager.setAdapter(adapter); 
} 

あるので、私はボタンにこのコードを追加しました。私のXMLでは、私は常にそれを見ることができるように、コンテナidの上にボタンを置いた。理想的には、3つのボタンがあり、それぞれがMain2Activity、Main3Activity、Main4ActivityというコンテナIDを入れています。ここでは、ビューを変更する方法を理解しようとすると、ちょうど1つのボタンです。

public void onClickBtn1(View v){ 
    FragmentManager fm = getSupportFragmentManager(); 
    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction(); 

    ft.replace(R.id.container, new Main2Activity()); 
    ft.commit(); 
} 

これは役立つ場合は、これも私のSectionsPageAdapterページです。

public class SectionsPageAdapter extends FragmentPagerAdapter { 

private final List<Fragment> mFragmentList = new ArrayList<>(); 
private final List<String> mFragmentTitleList = new ArrayList<>(); 

public void addFragment(Fragment fragment, String title) { 
    mFragmentList.add(fragment); 
    mFragmentTitleList.add(title); 
} 

public SectionsPageAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    return mFragmentTitleList.get(position); 
} 

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

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

ありがとうございます! viewpagerのアダプタのリスト/配列内のアイテムのインデックスに行くためにあなたのクリックの中

答えて

1

コールViewPager#setCurrentItem

public void onClickBtn1(View v){ 
    int gotoIndex = 0; 
    mViewPager.setCurrentItem(gotoIndex, /*smoothscrolling*/ true); 
} 
関連する問題