android片段的两种不同声明

android片段的两种不同声明,android,android-fragments,Android,Android Fragments,我创建了一个片段类Fragment1,当试图从主活动调用它时,它会显示如下错误 Fragment1 don= new Fragment1(); @Override public Fragment getItem(int position) { return don; } 但是当我这样做的时候,它工作得非常好 @Override public Fragment getItem(int position) { return (new Fragment1()); } 有人能解释一下

我创建了一个片段类Fragment1,当试图从主活动调用它时,它会显示如下错误

Fragment1 don= new Fragment1();
@Override
public Fragment getItem(int position) {
    return don;
}
但是当我这样做的时候,它工作得非常好

@Override
public Fragment getItem(int position) {
    return (new Fragment1());
}
有人能解释一下为什么会这样吗

它将显示此错误消息

06-28 20:50:41.111: E/AndroidRuntime(1282): FATAL EXCEPTION: main
06-28 20:50:41.111: E/AndroidRuntime(1282): Process: com.abdelhadi.dontcha, PID: 1282
06-28 20:50:41.111: E/AndroidRuntime(1282): java.lang.IllegalStateException: Can't      change tag of fragment EditorChoice{b4db6930 id=0x7f05003c android:switcher:2131034172:0}: was android:switcher:2131034172:0 now android:switcher:2131034172:1
06-28 20:50:41.111: E/AndroidRuntime(1282):     at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:398)
06-28 20:50:41.111: E/AndroidRuntime(1282):     at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:389)
06-28 20:50:41.111: E/AndroidRuntime(1282):     at        android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:99)

我想说你有你的片段适配器getsize()返回一个大于1的数字,以这种方式,您将为所有片段返回相同的实例,这是不可能的。

@Rod_Algonquin刚刚添加了错误。因为正如我所说,您不能对多个页面使用相同的Fragement实例,因为它将具有一个ID。您必须为每个页面都有一个新实例。