Android 做fragmetn回退栈测试遇到的问题
2015-07-16 16:54
417 查看
遇到一个问题:我有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里面的值。这个是为什么呢??
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里面的值。这个是为什么呢??
相关文章推荐
- Android Fragment 真正的完全解析(上)
- Android 解决Dex超出方法数的限制问题
- Android系列之Fragment(一)----Fragment加载到Activity当中
- android 基础知识总结 之 等待圆环
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- Android AsyncTask 源码解析
- Android中圆形的imageView
- View控件中android:drawablePadding不起作用的原因探究
- Android 屏幕适配方案
- Android自定义View——自定义搜索框(SearchView)
- 关于 android 基础知识的总结 之 定时器
- Android中截取照片
- 【Android测试】【第三节】ADB——源码浅谈
- android dp与px之间转换以及px与sp之间的转换
- android 设备在设置节能模式的情况下 调用 Toast 会 唤醒屏幕 突然变亮
- Android Fragment 你应该知道的一切
- Android下如何把屏幕录制演示生成gif动态图
- Android之Service与Activity通信机制
- Android地图 获取经纬度计算距离介绍
- Android 特别大的Activity和Fragment的生命周期图