PagerSlidingTabStripをFragmentにしたい。
以下のコードはextends ActionBarActivityになっておりますが、これをextends FragmentやActivityにする事は可能でしょうか?一番行いたいのはFragmentに書き換える事ですが、もしも不可能であればActivityであればどのように行えばよいか伺いたいです。
可能であればどのように行えばよいかご教示頂けますと幸いです。よろしくお願いいたします。
public class PagerSlidingTabStrip extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
case R.id.menu_home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
private class TestAdapter extends FragmentPagerAdapter {
private final String[] TITLES = {"A", "B","C"};
public TestAdapter(FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
switch (position) {
case 0:
return new AFragment();
case 1:
return new BFragment();
}
return null;
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
}
}
追記
通常Fragmnetで作った画面は特別な処理をしなくても、下記のような画像になります。
しかし、たとえば上記したようなコードをそのまま遷移させますと表示はされますが、
当然ActionbarActivityになってしまい、上記のような画像のActionbar??NavigationDrawerを開くものは表示されません。
先ほど、ご教示いただいたDrawerの処理の部分の事だとは思うのですが、他のFragmentですと、特に処理を加えておりませんでしたので、どのような処理を加えればよいのかいまいち分かっておりません。。。
よろしければご教示いただけないでしょうか。