首页 > 解决方案 > 使用数据绑定时,如何将 Activity 的 30 个 EditTexts 的资源 ID 添加到 ArrayList?

问题描述

当我们不使用数据绑定时,我们可以简单地执行以下操作:

EditText editText;
List<EditText> arrayListOfEditTexts = new ArrayList<EditText>();

for(int i=1; i<=30; i++){

   // I have a naming convention of editTexts: editText1, editText2, ... editText30
   int resourceId = getApplicationContext().getResources().getIdentifier("editText"+i, "id", getApplication().getPackageName());

   editText = findViewById(resourceId);

   arrayListOfEditTexts.add(editText);
}

但是,当我们使用数据绑定时,不建议使用 findViewById,使用它会产生编译或运行时错误。但在这种情况下,我们也可以在活动中使用绑定变量访问editTexts,例如:binding.editText1。但是我想访问循环内的editTexts(使用循环变量)并将它们添加到ArrayList,因为editTexts太多(使用数据绑定时)。

那么,如何通过数据绑定实现上述代码部分中描述的功能呢?

标签: androiddata-binding

解决方案


推荐阅读