String s;
CheckBox cb[]= new CheckBox[n];
for(int i=0;i<n;i++) {
// CheckBox
String label = a[i];
cb[i]=new CheckBox(this);
cb[i].setText(label);
cb[i].setTextColor(Color.parseColor("#006400"));
cb[i].setId(i);
}
if(cb[i].isChecked()) {
s+=i+",";
}
尝试在循环中使用它 但是s的值没有变化 如果不使用最终变量
,则无法实现侦听器答案 0 :(得分:0)
尝试使用下面的内容。
StringBuilder s = new StringBuilder();
---
----
----
if(cb[i].isChecked())
{
s.append(i+",");
}
稍后您可以将其转换为String byt S.toString()
方法;
答案 1 :(得分:0)
您可以使用列表并在onCreate方法之外声明字符串:
private String s;
public void onCreate... {
final List<Integer> map = new ArrayList<Integer>();
CheckBox[] ch = ...;
for(int i=0;i<ch.length;i++) {
ch[i].setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
map.add(buttonView.getId());
} else {
map.remove(buttonView.getId());
}
s = "";
for (Integer i : map) {
s += i+",";
}
}
});
}