如何取消选中已选中的复选框?

时间:2016-05-24 09:54:00

标签: java android android-studio checkbox android-widget

我们得到检查结果后如何清除复选框?

类似于selection.clear();但是,它只清除输出,而不是复选框。

我要做的是,将复选框设置为未选中的原始状态。

用户选中复选框后,单击按钮获取复选框的结果,我希望清除复选框中的所有选项。怎么请帮忙?

public class DessertIngAvail extends Dessert {

ArrayList<String> selection = new ArrayList<String>();
TextView final_text;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dessert_ing_avail);

    final_text = (TextView)findViewById(R.id.final_result);
    final_text.setEnabled(false);
}

public void selectItem(View view){
    boolean checked = ((CheckBox) view).isChecked();
    switch (view.getId()) {
         case R.id.checkBox181:
            if(checked) {
                if(!selection.contains("Tebaloi"))
                    selection.add("Tebaloi");

                if(!selection.contains("Tumpik"))
                    selection.add("Tumpik");
            }

            break;

        case R.id.checkBox182:
            if(checked) {
                if(!selection.contains("Ambuyat"))
                    selection.add("Ambuyat");
            }

            break;

        case R.id.checkBox183:
            if(checked) {
                if(!selection.contains("Tumpik"))
                    selection.add("Tumpik");
            }

            break;

        case R.id.checkBoxCM:
            if(checked) {

                if(!selection.contains("Honey Frankincense Cake"))
                    selection.add("Honey Frankincense Cake");

                if(!selection.contains(" Ray Heart Cake"))
                    selection.add(" Ray Heart Cake");
            }

            break;
    }
}

public void finalSelection(View view) {

    String final_fruit_selection = "";

    for(String Selection : selection) {
        final_fruit_selection = final_fruit_selection + Selection + "\n";
    }

    final_text.setText(final_fruit_selection);
    selection.clear();

    final_text.setEnabled(true);
    }
}

5 个答案:

答案 0 :(得分:1)

您可以使用

checkBox.setChecked(boolean);
//to clear the check box
checkBox.setChecked(false);

更新了finalSelection(视图视图)方法;

public void finalSelection(View view){
    String final_fruit_selection = "";
    for(String Selection : selection){
       final_fruit_selection = final_fruit_selection + Selection + "\n";
    }
    final_text.setText(final_fruit_selection);
    selection.clear();
    final_text.setEnabled(true);

    //now clear checkboxes
    checkBox181.setChecked(false);
    checkBox182.setChecked(false);
    checkBox183.setChecked(false);
    checkBoxCM.setChecked(false);
}

改变真正非常基本的东西

//right below TextView final_text; at the top add this
CheckBox checkBox181,checkBox182,checkBox183,checkBoxCM;

//declare then in onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_dessert_ing_avail);

   final_text = (TextView)findViewById(R.id.final_result);
   final_text.setEnabled(false);
   checkBox181=(CheckBox)findViewById(R.id.checkBox181);
   checkBox182=(CheckBox)findViewById(R.id.checkBox182);
   checkBox183=(CheckBox)findViewById(R.id.checkBox183);
   checkBoxCM=(CheckBox)findViewById(R.id.checkBoxCM);
}

我建议你在线跟进一些java课程。 This是一个很好的起点。

开始学习android开发检查here

答案 1 :(得分:1)

检查:

checkBox.setChecked(true);

并取消选中:

checkBox.setChecked(false);

答案 2 :(得分:0)

使用setChecked()

checkBox.setChecked(true/false)

文档:https://developer.android.com/reference/android/widget/CheckBox.html

答案 3 :(得分:0)

我不确定我理解您的问题,但您可以使用checkBox.setChecked(false)设置复选框。要取消选中所有选中的复选框,只需循环选中它们并取消选中已选中的复选框。

答案 4 :(得分:0)

如果您确定选中了复选框,则可以切换它们。

checkbox.toggle();

否则

checkBox.setChecked(false); // pass true if you want to select.