Fragment的add和replace

下面的代码,当先点击第二个TextView的时候,就会抛出java.lang.IllegalStateException:Fragmentalreadyadded异常,而... 下面的代码,当先点击第二个TextView的时候,就会抛出java.lang.IllegalStateException: Fragment already added异常,而如果先点击第一个或第三个TextView的时候,就正常运行。且如果先点击第一个TextView二后点击第二个TextView的时候,也正常运行。这到底是什么原因?三个TextView的代码明显都一样的啊

fragment1 = new FragmentOne();
fragment2 = new FragmentTwo();
fragment3 = new FragmentThree();
System.out.println("*************************************");
System.out.println(fragment1);
System.out.println(fragment2);
System.out.println(fragment3);
System.out.println("*************************************");
ft = fm.beginTransaction();
ft.add(R.id.fragmentcontent, fragment1);
ft.add(R.id.fragmentcontent, fragment2);
ft.add(R.id.fragmentcontent, fragment3);
ft.commit();

textView1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ft = fm.beginTransaction();
hide(ft);
if(fragment1!=null){
ft.replace(R.id.fragmentcontent, fragment1);
}
if(fragment1==null){
fragment1 = new FragmentOne();
ft.replace(R.id.fragmentcontent, fragment1);
}

ft.show(fragment1);
ft.commit();
}
});

textView2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ft = fm.beginTransaction();
hide(ft);
if(fragment2!=null){
ft.replace(R.id.fragmentcontent, fragment2);
}
if(fragment2==null){
fragment2 = new FragmentTwo();
ft.replace(R.id.fragmentcontent, fragment2);
}
ft.show(fragment2);
ft.commit();
}
});

textView3.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ft = fm.beginTransaction();
hide(ft);
if(fragment3!=null){
ft.replace(R.id.fragmentcontent, fragment3);
}
if(fragment3==null){
fragment3 = new FragmentThree();
ft.replace(R.id.fragmentcontent, fragment3);
}
ft.show(fragment3);
ft.commit();
}
});
到底是什么问题啊
展开
 我来答
lzzfsm111
2015-06-17
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
因为你把自己的思维方式强加在了机器的思维方式上。所以你才会写出如此不合理的代码,以至于编译器都看不下去而报错!然并卵!所以你还是先去看相应的api!
追问
我看了API啊,先不管合不合理,你先告诉我这到底错在哪儿了啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式