重複の可能性:
他のアクティビティを開始するときにTabhostを保持する方法
「tab1」から新しいアクティビティを起動しようとしていますが、アクティビティが画面全体に開きます。インテントを起動したタブで新しいアクティビティを開く必要があります。
重複の可能性:
他のアクティビティを開始するときにTabhostを保持する方法
「tab1」から新しいアクティビティを起動しようとしていますが、アクティビティが画面全体に開きます。インテントを起動したタブで新しいアクティビティを開く必要があります。
アクションバーにこのコードを使用し、タブのフラグメントにアクティビティを設定します。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
appContext = getApplicationContext();
//ActionBar
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab PlayerTab = actionbar.newTab().setText("Fragment A");
ActionBar.Tab StationsTab = actionbar.newTab().setText("Fragment B");
Fragment PlayerFragment = new AFragment();
Fragment StationsFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(PlayerFragment));
StationsTab.setTabListener(new MyTabsListener(StationsFragment));
actionbar.addTab(PlayerTab);
actionbar.addTab(StationsTab);
このクラスをタブに配置します。
class MyTabsListener implements ActionBar.TabListener {
public Fragment fragment;
public MyTabsListener(Fragment fragment) {
this.fragment = fragment;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Toast.makeText(StartActivity.appContext, "Reselected!", Toast.LENGTH_LONG).show();
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
お役に立てば幸いです。ありがとう..
次の2つの方法で実装できます。
http://android.codeandmagic.org/2011/07/android-tabs-with-fragments/