以编程方式添加edittext iD

时间:2020-04-03 09:57:30

标签: java android-edittext

我已经知道如何以编程方式创建edittext,但是问题是它们具有相同的ID,如何在生成的每个edittext上添加随机ID

2 个答案:

答案 0 :(得分:0)

您无需为每个视图设置唯一的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}

答案 1 :(得分:0)

您可以对每个ID的EditText

使用以下代码
View.generateViewId()
相关问题