2013-03-14 72 views
1

我需要找到出路如何检索检查状态,代码如下创建复选框:如何检查复选框是否在Android应用程序中被选中或未选中?

for (int i = 0; i < cnt; i++) { 
        cb = new CheckBox(getApplicationContext()); 
        TextView txt = new TextView(getApplicationContext()); 
        final LinearLayout ll2 = new LinearLayout(
          PollActivity.this); 
        ll2.setOrientation(LinearLayout.HORIZONTAL); 
        ll2.addView(txt); 
        ll2.addView(cb); 
        txt.setText(PersianReshape 
          .reshape(last_poll_array[i][1])); 
        txt.setTypeface(face); 
        ll.setGravity(Gravity.RIGHT); 
        ll2.setGravity(Gravity.RIGHT); 
        ll.addView(ll2); 

       } 
       sc.addView(ll); 

任何指导,将不胜感激。

回答

2

你可以检查你LL2的孩子是这样的:

boolean oneChecked = false; 
View v = null; 
for(int i=0; i<ll2.getChildCount(); i++) { 
    v = ll2.getChildAt(i); 
    if (v instanceof CheckBox) { 
     if (((CheckBox) v).isChecked()) { 
      oneChecked = true; 
      break; 
     } 
    } 
} 
if (oneChecked) { 
    // Do whatever you like if one CheckBox is checked 
} 
+0

它不工作 – Fcoder 2013-03-14 08:38:23

+0

你能提供一个解释,为什么它不起作用?有什么例外吗?我没有真正测试代码,但我很确定它应该工作。 – 2013-03-14 09:24:34

4

我认为你必须使用一个for循环来检查一个复选框是否被选中或不喜欢这个

cb.isChecked()==true; 

和对于每个复选框,使用Integer数组保存值为“true”,“1”为false。

您可以保存此文件是,SharedPrefrences或CoreData,这样下一次运行该应用程序,它会保持相同的价值观

0

此代码使您能够存储复选框的IDS。我开发了Michael Schmidt的代码。非常感谢,迈克尔!

ArrayList<Integer> check = new ArrayList<Integer>(); 

for(int k=0;k<ll.getChildCount();k++){ 
      View v = ll.getChildAt(k); 
      if(v instanceof CheckBox){ 
       if(((CheckBox)v).isChecked()){ 
        check.add(ll.getChildAt(k).getId()); 
       } 
      } 
     } 
0

试试这个:

if(chckbxcuger.isSelected())rezultatas.setText("cuger"); 
    if(chckbxmilk.isSelected())rezultatas.setText("milk"); 
    if(chckbxCukrus.isSelected()&&chckbxPienas.isSelected())rezultatas.setText("cuger and milk");