我已经知道如何以编程方式创建edittext,但问题是它们具有相同的ID,如何在生成的每个edittext上添加随机ID
您无需为每个视图设置唯一的ID。只需为其设置不同的标签:
private static String getTag(int index) {
return "MY_TAG_" + index;
}
...
for (int i = 0; i < 3; i++) {
EditText editText = new EditText(this);
editText.setId(android.R.id.edit); // same id
editText.setTag(getTag(i)); // different tag
layout.addView(editText);
}
EditText firstField = layout.findViewWithTag(getTag(0));
System.out.println(firstField);
但是,如果您仍然想要,有一个静态方法View.generateViewId()
:
int[] fieldIds = new int[3];
for (int i = 0; i < 3; i++) {
fieldIds[i] = View.generateViewId();
EditText editText = new EditText(this);
editText.setId(fieldIds[i]); // different id
layout.addView(editText);
}
EditText firstField = layout.findViewById(fieldIds[0]);
System.out.println(firstField);
I / System.out:android.widget.EditText {ed04adc VFED..CL。 ......一世。 0,0-0,0#1020003 android:id / edit}