我找不到任何关于复选框首选项的教程。我可以使用列表首选项,但不能使用复选框首选项。现在,我希望如果用户在复选框上设置,吐司消息说“真”,如果他设置它,吐司消息说“假”。到目前为止,我有这个:
首选项.xml:
<CheckBoxPreference
android:title="Show Call UI"
android:defaultValue="true"
android:summary="Show Call Interface when clicking call button"
android:key="checkboxPref" />
编辑首选项.java:
public class EditPreferences extends PreferenceActivity {
String listPreference;
boolean checkboxPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
public void onStart(Intent intent, int startId) {
getPrefs();
}
private void getPrefs() {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
listPreference = prefs.getString("listPref", "nr1");
checkboxPreference = prefs.getBoolean("checkboxPref", true);
}
}
编辑:感谢David Caunt的解决方案:
checkboxPreference.
setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue.toString().equals("true")) {
Toast.makeText(getApplicationContext(), "CB: " + "true",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "CB: " + "false",
Toast.LENGTH_SHORT).show();
}
return true;
}
});