如何检索android中已选中复选框的id

时间:2012-08-02 08:56:57

标签: android checkbox

   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的值没有变化 如果不使用最终变量

,则无法实现侦听器

2 个答案:

答案 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+",";
            }
        }
    });
}