0
私は次のように私のアプリでtablayoutを作成しました:タブレイアウトを使用する別のアクティビティからアクティビティを開始するにはどうすればよいですか?
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
の0
、またはページアダプタの!
はほとんどの場合、答えは "どちらも" です。あなたは、 'Button'やアクションバー項目やnavドロワー項目のように、アクティビティーを開始する時間を示す何かをユーザーがクリックすると、アクティビティーを開始します。ユーザーが他のタブに切り替わったためにアクティビティを開始しない。なぜなら、*そのユーザーはそのタブの内容で作業することができないからです。 – CommonsWare
@CommonsWare:十分ですが、そのタブのレイアウトを読み込む方法は?たとえば、ListViewを表示する必要がある場合私はタブの変更でそれを行うことができるようにしたい –
あなたの活動をいつ開きたいですか?ユーザーがタブを切り替えると?もしそうなら、それは間違っている。 – AnixPasBesoin