每个标签片段的不同活动

时间:2015-08-25 17:02:25

标签: android android-fragments

我有3个标签,我正在尝试显示不同的活动并布置每个标签。 我使用选项卡作为我的应用程序导航,因此当更改时,需要更改整个布局和活动。

实际上只有布局正在改变。

由于MainActivity.java +布局中包含PageAdapter(PageAdapter正在加载选项卡的内容), 我已将第一页活动从 MainActivity.java 移至名为 showUpdates.java 的新java活动。现在我正在尝试访问此活动作为我的标签#1内容

如果您仍然不明白我的要求,以下内容将明确:

我的3个标签是:

  

Java:TabFragment1.java,XML:activity_show_updates.xml

     

Java:TabFragment2.java,XML:tab_fragment_2.xml

     

Java:TabFragment3.java,XML:tab_fragment_3.xml

TabFragment1.java:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        /**
         * Was trying:
         * Intent intent = new Intent(...)
         * startActivity(intent);
         */
        return inflater.inflate(R.layout.activity_show_updates, container, false);
    }

正如您所看到的,它正在转向新的布局 activity_show_updates.xml。

我要做的是 - 使用我的showUpdates.java作为tab_fragment_1的活动。

我一直在尝试使用Intent,但是当我在 TabFragement1.java 创建它时,我的应用程序崩溃了。

任何人都知道如何将showUpdates.java作为此布局的活动?

2 个答案:

答案 0 :(得分:2)

您无法嵌套活动。有片段。只需为每个选项卡创建一个不同的片段,然后使用Activity来保存所有选项卡。如果你需要它,你也可以创建子片段(虽然支持不是很好,你可能会有一些问题,但没有什么真的难以处理)。

答案 1 :(得分:0)

如果您有viewpager工作,您可以执行以下操作:

public static class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }
        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            if(position == 0){
                 //return first fragment
            }
           else if(position == 1){
                 //return second fragment
           }
...
    }

您可以在onCreateView中执行onCreate逻辑:

public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            View yourFragment = inflater.inflate (Resource.Layout.fragment_name, container, false);
                ... //do stuff
              return yourFragment;
}

您需要做的就是定义要在适配器中输出的片段