我有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作为此布局的活动?
答案 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;
}
您需要做的就是定义要在适配器中输出的片段