遇到一个问题:我有3个Fragment,每个里面都有一个edittext和button。
frag1点击button通过replace自己的方式打开frag2,同时把frag1加入backstack。
frag2点击button通过hide自己,然后add的方式打开frag3.同时把frag2加入backstack。
这个时候问题出来了。两种情况:
frag1点击button通过replace自己的方式打开frag2,同时把frag1加入backstack。
frag2点击button通过hide自己,然后add的方式打开frag3.同时把frag2加入backstack。
这个时候问题出来了。两种情况:
1.我第一次的时候给frag1里面的edittext设置了id。然后跑程序,给frag1的edittext输入值,给frag2的edit输入值,然后进入frag3. 然后按back键依次返回,返回到frag2,里面的edtitext有值,这个OK。返回到frag1里面的edittext也有值。(我是用replace方式替换掉frag1的)
2.我第二次的时候给frag1里面的edittext删除了id属性。然后跑程序,给frag1的edittext输入值,给frag2的edit输入值,然后进入frag3. 然后按back键依次返回,返回到frag2,里面的edtitext有值,这个OK。返回到frag1里面的edittext 没有值了。
按理说replace的时候不应该是会把fragment的视图状态给删除,只保留fragment的实例。
但是第一种情况replace了frag1,却保留了edittext里面的值。这个是为什么呢??