很抱歉,如果标题不明确,但我正在尝试做的是:
在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?
答案 0 :(得分:2)
假设您的View
的ID分别为yourViewName0
,yourViewName1
,yourViewName2
等。
你可以这样做:
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.
通过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);
}