Sherlock フラグメント アクティビティを作成し、タブを実装しました。
public class Home extends SherlockFragmentActivity
{
ActionBar actionBar;
TabHost myTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
actionBar=getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1= actionBar.newTab();
ActionBar.Tab tab2= actionBar.newTab();
//ActionBar.Tab tab3 = actionBar.newTab();
tab1.setText("Contacts");
tab2.setText("Inbox");
// tab3.setText("Outbox");
tab1.setTabListener(new MyTabListener());
tab2.setTabListener(new MyTabListener());
actionBar.addTab(tab1, true);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
}
そして、これは私のタブ変更リスナーです:
private class MyTabListener implements TabListener
{
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getPosition()==0)
{
FragmentA frag = new FragmentA ();
ft.replace(android.R.id.content, frag );
}
else
{
FragmentB frag = new FragmentB ();
ft.replace(android.R.id.content,frag );
}
}
そして、これは私のFragmentAです:
public class FragmentA extends Fragment
{
TextView textView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
return inflater.inflate(R.layout.activity_list, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
}
}
ここで最初のタブの下に、表示されているリストがあります。リスト項目のいずれかをクリックすると、同じアクティビティの下に別のフラグメントをロードする必要があります。また、戻るキーを押すと、古いフラグメントを同じタブの下にロードする必要があります。
これは actionbarsherlock タブで可能ですか? もしそうなら、どうすればいいですか?