2017-07-06 50 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個按鈕,每個按鈕放入容器ID Main2Activity,Main3Activity和Main4Activity。這裏只是一個按鈕,因爲我試圖弄清楚如何讓視圖發生變化。

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(); 
} 
} 

在此先感謝!

回答

1

呼叫ViewPager#setCurrentItem在上點擊進入該項目的索引viewpager的適配器的列表/數組:

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