0
我在我的應用程序創建tablayout如下:如何從使用選項卡布局的其他Activity啓動活動?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_place_info);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.action_bar);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("الموقع"));
tabLayout.addTab(tabLayout.newTab().setText("تفاصيل التصنيف"));
tabLayout.addTab(tabLayout.newTab().setText("ساعات العمل"));
tabLayout.addTab(tabLayout.newTab().setText("المتطلبات"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter
(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setCurrentItem(4);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
int position = tab.getPosition();
switch(position){
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
頁適配器:
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
LocationInfoFragment tab1 = new LocationInfoFragment();
return tab1;
case 1:
RankInfoFragment tab2 = new RankInfoFragment();
return tab2;
case 2:
WorkingHoursInfoFragment tab3 = new WorkingHoursInfoFragment();
return tab3;
case 3:
WorkingHoursInfoFragment tab4 = new WorkingHoursInfoFragment();
return tab4;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
我知道,當我要開始一個活動我一定要使用Intent
如下:
Intent processesListAcitivity = new Intent(getApplicationContext(), ProcessesListAcitivity.class);
startActivity(processesListAcitivity);
我的問題是把它放在哪裏:
在switch
的第一類,還是在頁面適配器?
最有可能的答案是 「不」。當用戶點擊某個表示是時候開始活動的事物時,您可以開始一個活動,例如「按鈕」或操作欄項目或導航抽屜項目。您不會開始活動,因爲用戶切換到其他選項卡,因爲*用戶無法使用該選項卡的內容*。 – CommonsWare
@CommonsWare:夠公平的,但如何加載我的佈局爲該選項卡?例如,如果我需要顯示一個ListView?!我希望能夠通過製表符更改 –
您想要什麼時候打開您的活動?當用戶切換標籤?如果是這樣,你做錯了。 – AnixPasBesoin