我有一个大约40个复选框的垂直线性布局,java部分有一个包含这些复选框内容的数组。有没有办法减少java代码?
public String[] sur= {"A","B", //about 40 elements};
CheckBox cb1 = (CheckBox) findViewById(R.id.s1);
cb1.setText(sur[0]);
CheckBox cb2 = (CheckBox) findViewById(R.id.s2);
cb2.setText(sur[1]);
CheckBox cb3 = (CheckBox) findViewById(R.id.s3);
cb3.setText(sur[2]);
// repeated about 40 times
答案 0 :(得分:1)
您可以尝试以下方式:
for(int i = 0; i < count; i++) {
CheckBox cb = new CheckBox(context);
cb.setText(sur[i]);
container.addView(cb);
}
答案 1 :(得分:0)
您可以使用id
包以编程方式获得view
个Resources
:
for (int index = 0; index < 50; index++) {
int id = getResources().getIdentifier("s" + (index + 1), "id", getPackageName());
CheckBox cb = (CheckBox) findViewById(id);
cb.setText(sur[index]);
}