比在java和xml中重复代码大约40次更好的方法吗?

时间:2017-01-04 21:35:17

标签: java android

我有一个大约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

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方式:

    for(int i = 0; i < count; i++) {
        CheckBox cb = new CheckBox(context);
        cb.setText(sur[i]);
        container.addView(cb);
    } 

答案 1 :(得分:0)

您可以使用id包以编程方式获得viewResources

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]);
}