遇到一个坑,Fragment A有多个Edittext,并且Edittext的父布局是include进来的,导致所有edittext的id都一样。
当使用Fragmeng 进行页面跳转并设置 addToBackStack后,发现上个A页面的edittext全被最后一个editext的输入值覆盖了,
查找原因发现是因为设置 addToBackStack后fragment会自动保存所有设置了ID的edittext,如上面所说的,我的edittext全是include,导致ID相同,出现了覆盖。
解决方案:
对 edittext findViewByID后动态的再次进行ID设置,由于include的父view ID肯定不同,所以我是这么写的:
mEditText.setId(rootView.getId() + mEditText.getId());
rootView即当前edittext的父view
本文介绍了一种解决Fragment中包含多个EditText且ID重复导致的数据覆盖问题的方法。通过为每个EditText动态设置新的ID,避免了使用addToBackStack时因ID冲突造成的覆盖现象。
4万+

被折叠的 条评论
为什么被折叠?



