我有一个包含LinearLayout的Fragment,其中不同的项目根据某些业务逻辑而膨胀.这些项目中包含EditText.当我有多个具有不同内容的这些项目并且我分离/附加片段时,所有EditTexts以某种方式获得所有相同的文本.只有EditText在布局文件中具有id时才会发生这种情况.
为什么会这样?除了删除id之外还有其他方法可以防止这种情况吗?我想findViewById在我的虚增项目上使用访问视图而不是容易出错getChildAt.
我在https://github.com/rodja/EditTextValueProblem创建了一个简单的例子来演示这个问题
我已经定义了几个布局,其中很少有id是多个定义的.我很困惑它是如何工作的?为什么它不像我们进入java代码那样给出错误?最重要的是,环境如何决定它需要调用哪个组件?
我理解id生成的过程是自动化的,它被添加到R.java中.例如,如果我们有相同的ID,在两个XML中说"image1",比如说"layout1"和"layout2".但在R.java中它不会有2个ID.这意味着它一次只能引用一个组件.
如果我们必须在Activity中使用2个XML,一个作为activity.setcontentview(layout1),另一个作为PopupWindow.setContentView(layout2).在这种情况下会发生什么?
可能是它非常基本的问题,但我错过了什么吗?