2012-05-05 78 views
1

只要选中或取消选中,我想获得复选框的当前状态。基于此显示Toast消息。这是我的代码到目前为止。一旦选中或取消选中,即可获取复选框状态

SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
    boolean Alarm = getPrefs.getBoolean("cbAlarm", true); 
    if(Alarm == true) { 
     Toast.makeText(this, "Checked", Toast.LENGTH_LONG).show(); 
    } else if(Alarm == false) { 
     Toast.makeText(this, "UnChecked", Toast.LENGTH_LONG).show(); 
    } 

我该如何做到这一点。请帮忙。

编辑 这里是我的xml文件

<CheckBoxPreference 
    android:title="Enable/Disable Alarm" 
    android:defaultValue="true" 
    android:key="cbAlarm" 
    android:summary="Enable or disable alarm" /> 

回答

1

只实现OnCheckedChangeListener:

CheckBox myCheckBox = (CheckBox) findViewById(R.id.my_checkbox); 

myCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){ 
     if (isChecked){ 
      Toast.makeText(this, "Checked", Toast.LENGTH_LONG).show(); 
     }else{ 
      Toast.makeText(this, "UnChecked", Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 
+1

我知道这一点,但在这里我使用CheckBoxPreference。我怎样才能用CheckBoxPreference做到这一点?请参阅我的更新 – 2619

+1

CheckBoxPreference有OnPreferenceClickListener() http://developer.android.com/reference/android/preference/Preference.OnPreferenceClickListener.html – theelfismike