如何将Activity TabHost片段设置为Activity中的另一个选项卡?

时间:2014-04-30 01:34:16

标签: android android-fragments

实际上我试图实现的是“回家”按钮

在活动A中,我使用TabHost创建视图,这意味着Tab 0是Home而Tab-5是其他页面

用户可以转到其他页面,在该页面中,有一个按钮,当用户点击它时,它是一个activityB

所以,在那个activityB中,有一个“回家”按钮

home.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v) {
                        onBackPressed();
                    }
                });

对于该按钮,我可以使用finish()或onBackpressed()来关闭当前活动,但是如何将该选项卡更改为该activityB中的tab 0,或者,我可以尝试以其他方式实现此操作?

由于

我将tabhost设置为static,但它只是像这样抛出异常

    04-30 09:27:06.799: E/AndroidRuntime(21154): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1354)
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1372)
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.support.v4.app.FragmentTabHost.onTabChanged(FragmentTabHost.java:313)
04-30 09:27:06.799: E/AndroidRuntime(21154):    at android.widget.TabHost.invokeOnTabChangeListener(TabHost.java:391)

1 个答案:

答案 0 :(得分:0)

当您要使用标签活动时,您需要使用

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        // on changing the page
        // make respected tab selected
        actionBar.setSelectedNavigationItem(position);
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    }

    @Override
    public void onPageScrollStateChanged(int arg0) {
    }
});

setOnClickListner不适用于标签主机活动,标签活动可以使用setOnPageChangeListener找到该网页