Android 做fragmetn回退栈测试遇到的问题

探讨在使用Fragment进行应用开发时,通过replace和hide操作后,编辑文本状态为何能在返回时得以保留的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 遇到一个问题:我有3个Fragment,每个里面都有一个edittext和button。
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里面的值。这个是为什么呢??
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值