我找不到复选框preference任何教程。我可以用一个列表preference,但我不能使用复选框preference。现在,我想,如果用户设置的checbox,举杯味精说真,如果他设置它关闭,敬酒味精说假。到目前为止,我有这样的:
preferences.xml:
<复选框preference
机器人:标题=查看调用UI
安卓:设置defaultValue =真
机器人:总结=显示通话界面点击呼叫按钮,当
机器人:关键=复选框preF/>
编辑preferences.java:
公共类编辑preferences扩展preferenceActivity {
字符串列表preference;
布尔复选框preference;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
加preferencesFromResource(R.xml preferences。);
}
公共无效ONSTART(意向意图,诠释startId){
获得preFS();
}
私人无效的get preFS(){
共享preferences preFS = preferenceManager
.getDefaultShared preferences(getBaseContext());
名单preference = prefs.getString(名单preF,NR1);
复选框preference = prefs.getBoolean(注记格preF,真正的);
}
}
编辑:解感谢David Caunt:
复选框preF。
西顿preferenceChangeListener(新preference.On preferenceChangeListener(){
在preferenceChange公共布尔(preference preference,对象为newValue){
如果(newValue.toString()。等于(真)){
Toast.makeText(getApplicationContext(),CB:+真,
Toast.LENGTH_SHORT).show();
} 其他 {
Toast.makeText(getApplicationContext(),CB:+假,
Toast.LENGTH_SHORT).show();
}
返回true;
}
});
解决方案
您需要一个监听器添加到preference在onCreate方法
最后的CheckBox preference复选框preF =(复选框preference)获得preferenceManager()。找到preference(复选框preF);
复选框pref.setOn preferenceChangeListener(新preference.On preferenceChangeListener(){
在preferenceChange公共布尔(preference preference,对象为newValue){
Log.d(MyApp的,preF+ preference.getKey()+改为+ newValue.toString());
返回true;
}
});
I cannot find any tutorials on checkbox preference. I can use a listpreference, but I can't use checkbox preference. For now, I want that if user sets on the checbox, a toast msg says "true" and if he sets it off, the toast msg says "false". So far I have this:
preferences.xml:
<CheckBoxPreference
android:title="Show Call UI"
android:defaultValue="true"
android:summary="Show Call Interface when clicking call button"
android:key="checkboxPref" />
EditPreferences.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);
}
}
Edit: Solution thanks to David Caunt:
checkboxPref.
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;
}
});
解决方案
You need to add a listener to the Preference in your onCreate method
final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxPref");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
Log.d("MyApp", "Pref " + preference.getKey() + " changed to " + newValue.toString());
return true;
}
});
上一篇:重写View.onSaveInstanceState()和View.onRestoreInstanceState()使用View.BaseSavedState?重写、View、onSaveInstan