You will need to create an onpreferenceChangelistener:
prefChangeListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == pref1 && newValue.toString().equals("true")){
pref2.setChecked(false);
pref3.setChecked(false);
}
if (preference == pref2 && newValue.toString().equals("true")){
pref1.setChecked(false);
pref3.setChecked(false);
}
if (preference == pref3 && newValue.toString().equals("true")){
pref1.setChecked(false);
pref2.setChecked(false);
}
return true;
}
};
Then, to use it,
pref1.setOnPreferenceChangeListener(prefChangeListener);
pref2.setOnPreferenceChangeListener(prefChangeListener);
pref3.setOnPreferenceChangeListener(prefChangeListener);
Or you can use the ListPreference, which will appear in the group of radio stations, and you can simply place three parameters there. This is what I did in my application, but if checkboxpreferences are needed, then this of course will work.
Here is my list (for determining how long he will call):
<ListPreference android:persistent="true"
android:title="Ring Time"
android:summary="Choose how long the phone will ring when activated"
android:key="ringTime"
android:defaultValue="ringNot"
android:entries="@array/ringTime"
android:entryValues="@array/ringSetting" />
And here is my XML for @ array / ringTime and @ array / ringSetting
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="ringTime">
<item>Don\'t Ring</item>
<item>Ring 30 Seconds</item>
<item>Ring 2 Minutes</item>
<item>Ring 5 Minutes</item>
</string-array>
<string-array name="ringSetting">
<item>ringNot</item>
<item>ring30Sec</item>
<item>ring2Min</item>
<item>ring5Min</item>
</string-array>
</resources>
, 5- , , - .:)
listpreference :
ringTime = pref.getString("ringTime", "ringNot");
if (ringTime.equals(ring30Sec))
else if (ringTime.equals(ring2Min))
else if (ringTime.equals(ring5Min))
else Toast.makeText(getBaseContext(), "Not Ringing", Toast.LENGTH_LONG).show();