2014-06-27 65 views
0

我正在編寫一個應用程序,其中輸出的選擇取決於所選的複選框。我有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=""; } 
} 

如果沒有點擊複選框,我該如何設置默認值?我嘗試初始化傳遞過濾器值的字符串x,但當我嘗試顯示沒有檢查任何複選框的結果時,應用程序崩潰。

+0

試試這個私人字符串x =「」; –

+0

可以請你發佈你的活動整個代碼? –

回答

0

選項1初始化變量: 初始化字符串默認值

String x = "myDefaultValue"; 

選項2:使用else,如果否複選框器isChecked,然後你進入別人

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因爲你初始化與空你的字符串。使用這兩個選項之一將解決問題。

+1

它很好地描述你改變了什麼,以及爲什麼發生錯誤。另一個答案是改變'String x = null;'改爲'String x =「」;' –

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); 
} 
+0

在Xml中,您可以將任何一個複選框聲明爲android:checked =「true」。這是一個簡單的修復,它會看起來像一個默認的複選框選擇! –