Android 带片段的选项卡栏-添加片段

Android 带片段的选项卡栏-添加片段,android,android-fragments,Android,Android Fragments,我使用ViewPager和带有listview的片段实现了一个选项卡栏。当点击其中一个列表项时,我有一个对MainActivity的回调,MainActivity将处理该操作。现在,我必须在右侧选项卡中现有片段的基础上添加另一个片段。我试着用它 Bundle args = new Bundle(); args.putInt("Tab", tab); args.putIntegerArrayList("Sel", sel); sel.

我使用ViewPager和带有listview的片段实现了一个选项卡栏。当点击其中一个列表项时,我有一个对MainActivity的回调,MainActivity将处理该操作。现在,我必须在右侧选项卡中现有片段的基础上添加另一个片段。我试着用它

        Bundle args = new Bundle();
        args.putInt("Tab", tab);
        args.putIntegerArrayList("Sel", sel);
        sel.add(position);
        Tab1Fragment newFragment = new Tab1Fragment();
        newFragment.setArguments(args);
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(R.id.content, newFragment);
        transaction.addToBackStack(null);
        transaction.commit();
这段代码正在工作,但不一定在我想要的选项卡上。
我有四个标签,每个标签上都有一个片段。因此,我必须指出发生动作的正确片段。我的四个片段中的哪一个将被此代码覆盖?我在这里如何处理一个特定的片段?

我从您的问题中了解到,您希望在当前片段上添加一个片段,该片段的列表项已单击。。。如果是这种情况,请提供当前片段基本布局(一般情况下为FrameLayout)的id(R.id.content,即在您的情况下)。通常,如果要添加片段,则容器基础布局应为FrameLayout。这样新的片段视图可以覆盖在片段的当前视图上


如果不是这样,请告诉我…

R.id.content
您的ViewPager吗?在需要另一个片段的选项卡中,在该片段中使用frameLayout,然后在该帧中膨胀片段。问题是另一个问题。对于所有四个片段,我确实使用相同的空实例“Sel”初始化了参数“Sel”。当我不得不在一个片段中修改这个参数时,它在其他片段中也有相同的值。因此,其他片段的行为与实际片段完全相同。这就是为什么我有一种印象,那就是错误的部分被处理了。(我对所有四个选项卡使用相同的Tab1Fragment。它们显示的内容取决于参数。相同的参数=相同的显示。)@thpitsch对于“Sel”,您将传递一个arraylist。。首先,当我们传递一个可序列化对象时,它会变成一个新对象,它的引用与您拥有的引用不同。因此,稍后当您使用列表引用进行任何更改时,您不会影响当前的片段列表元素。如果您想稍后更新fragment视图,那么可以使用fragment引用并直接使用方法进行更新。但是在“args.putIntegerArrayList(“Sel”,Sel)”中,我在它上面放了一些东西,之前声明为“ArrayList Sel=new ArrayList()”。这个“sel”是同一个对象,当我把它放在不同的包上时。如果我改变它,这个改变对所有片段都有效。现在我执行“args.putIntegerArrayList(“Sel”,newArrayList())”,问题就解决了。