未单击复选框时的默认值

时间:2014-06-27 08:02:17

标签: android checkbox

我正在编写一个应用程序,其中输出的选择取决于所选的复选框。我有4个复选框,用于选择不同的过滤器。

private  String  x=null;

public void onCheckboxClicked(View view) {

    CheckBox check1 = (CheckBox) findViewById(R.id.checkbox_OK);
    CheckBox check2 = (CheckBox) findViewById(R.id.checkbox_NOK);
    CheckBox check3 = (CheckBox) findViewById(R.id.checkbox_CHECK);
    CheckBox check4 = (CheckBox) findViewById(R.id.checkbox_ALLOK);
    if (check1.isChecked()) {
        x = "0000";
        Log.d(TAG, x);
    } else if (check2.isChecked()) {
        x = "1111";
        Log.d(TAG, x);
    } else if (check3.isChecked()) {
        x = "8888";
        Log.d(TAG, x);
    } else if (check4.isChecked()) {
        x = "";
        Log.d(TAG, x);
    }
else{x=""; }
}

如果没有单击任何复选框,如何设置默认值?我尝试初始化传递过滤器值的String x,但是当我尝试显示结果时没有选中任何复选框,应用程序崩溃。

2 个答案:

答案 0 :(得分:1)

  

如果没有单击任何复选框,如何设置默认值

使用默认值

初始化变量
x = "default_value";

if (check1.isChecked()) {
    x = "0000";
    Log.d(TAG, x);
} else if (check2.isChecked()) {
    x = "1111";
    Log.d(TAG, x);
} else if (check3.isChecked()) {
    x = "8888";
    Log.d(TAG, x);
} else if (check4.isChecked()) {
    x = "";
    Log.d(TAG, x);
}

答案 1 :(得分:0)

选项1: 使用默认值

初始化String
String x = "myDefaultValue";

选项2:使用else,如果没有复选框isChecked,那么你进入else

if (check1.isChecked()) {
    x = "0000";
    Log.d(TAG, x);
} else if (check2.isChecked()) {
    x = "1111";
    Log.d(TAG, x);
} else if (check3.isChecked()) {
    x = "8888";
    Log.d(TAG, x);
} else if (check4.isChecked()) {
    x = "";
    Log.d(TAG, x);
} else{
    x = "default value";
    Log.d(TAG, x);
}

您得到的错误是NullPointerExeption,因为您使用null初始化String。使用这两个选项之一将解决问题。