如何获取在android中以编程方式创建的所选复选框的值

时间:2014-04-16 05:09:03

标签: android eclipse tags android-checkbox

我用来创建复选框的代码

try{
for (int i = 0; i < Utstyr.size(); i++) {
cb = new CheckBox(getApplicationContext());
cb.setText(""+Utstyr.get(i));
cb.setTextColor(Color.parseColor("#000000"));
cb.setTag(""+list_sted.get(i));
cb.setTextAppearance(getBaseContext(), android.R.attr.checkboxStyle);
checkbox_lay.addView(cb);
}}
catch(Exception e){
 System.out.println("ohh i got busted...!!!");
}

如何获取正在选中哪个复选框的值..我想要复选框的名称

3 个答案:

答案 0 :(得分:2)

CheckBox[] chkArray = new CheckBox[Utstyr.size()];//
for (int i = 0; i < Utstyr.size(); i++) {
    chkArray[i] = new CheckBox(getApplicationContext());
    chkArray[i].setText(""+Utstyr.get(i));
    chkArray[i].setTextColor(Color.parseColor("#000000"));
    chkArray[i].setTag(""+Utstyr.get(i));
    chkArray[i].setTextAppearance(getBaseContext(), android.R.attr.checkboxStyle);
    checkbox_lay.addView(chkArray[i]);
}
for (int k = 0; k < Utstyr.size(); k++){
    if(chkArray[k].isChecked()){
        //Do something
    }
}

希望这会有所帮助.. :)

答案 1 :(得分:0)

要使用in循环生成复选框,您不需要设置globalize变量。

for (int i = 0; i < Utstyr.size(); i++) {
cb = new CheckBox(getApplicationContext());
......
}

而不是上面的代码,你必须像下面这样初始化。

 for (int i = 0; i < Utstyr.size(); i++) {
    CheckBox cb = new CheckBox(getApplicationContext());
    ......
    }

要获取选中的复选框,您必须使用以下代码

int childcount = checkbox_lay.getChildCount();
for (int i=0; i < childcount; i++){
      View v = checkbox_lay.getChildAt(i);

     if(v instanceof Checkbox){

    Checkbox ck=(Checkbox)v;
       boolean isSelected = ch.isChecked(); 
      }

}

答案 2 :(得分:-1)

您需要参考这些复选框。 创建一个复选框数组,并在每次创建复选框时添加它,而不是从中获取所需内容...