如何添加具有不同ID的数组元素

时间:2016-06-20 11:05:32

标签: java android

很抱歉,如果标题不明确,但我正在尝试做的是:

在xml中我有很多EditText个字段,它们具有不同的id但几乎相同(例如,A1,A2,A3等)。我想要做的是在带有循环的数组中添加这些id中的值。

EditText[] rEdit = new EditText[25];

for (int i = 0; i < 25; i++) {
    rEdit[i] = (EditText) findViewById(R.id.A1);
}

我该怎么做,所以它也会遍历id?

5 个答案:

答案 0 :(得分:2)

假设您的View的ID分别为yourViewName0yourViewName1yourViewName2等。

你可以这样做:

EditText[] rEdit = new EditText[25];

for (int i = 0; i < 25; i++) {
    EditText editText = (EditText) findViewById(getResources()
        .getIdentifier("yourViewName" + i, "id", getPackageName()));
    rEdit[i] = editText;
}

答案 1 :(得分:0)

res/values/arrays.

中创建一个id数组

通过getResources().getIntArray()

加载

像往常一样迭代

答案 2 :(得分:0)

尝试这样做:

EditText[] rEdit = new EditText[25];

for (int i = 0; i < 25; i++) {
    int resId = getResources().getIdentifier("A"+i, "id", getPackageName());
    rEdit[i] = (EditText) findViewById(resId);
}

resId将获得A1,A2,A3 ... A24 ID,您可以根据需要轻松获取EditText。

答案 3 :(得分:0)

你可以试试这个。

EditText[] rEdit = new EditText[25];
for (int i = 0; i < 25; i++) {
String edtvId="A"+i;
int resID = getResources().getIdentifier(edtvId, "id",  "your_package_name");
 rEdit[i] = (EditText) findViewById(resID);
}

答案 4 :(得分:0)

您可以先创建一个带有ids的数组,然后迭代它:

int [] ids = new int[] {R.id.A1, R.id.A2, R.id.R3};

int n = 0;
for (int id : ids) {
    rEdit[n++] = (EditText)findViewById(id);
}