我必须在preferncescreen中有许多checkboxpreference,并且必须注册每个复选框值已更改并根据其是否打开来执行某项任务。如何在checkboxpreference中执行此操作? 我知道要使用以下代码在复选框中执行此操作:
public void onCheckboxClicked(View view) {
// Is the view now checked?
boolean checked = ((CheckBox) view).isChecked();
// Check which checkbox was clicked
switch(view.getId()) {
case R.id.Activate:
if (checked){
// Put some meat on the sandwich
Toast.makeText(Daydream.this, "checked!", Toast.LENGTH_LONG).show();
}else
// Remove the meat
Toast.makeText(Daydream.this, "UNchecked!", Toast.LENGTH_LONG).show();
break;
case R.id.sencond_id:
if (checked){
// Cheese me
}else
// I'm lactose intolerant
break;
// TODO: Veggie sandwich
}
}
但是我不知道用checkboxpreference做这个。有没有办法像上面那样做?我知道偏向屏幕已被弃用但我必须使用它因为简单来制作两行listview。我希望我得到一个很快回复。谢谢
答案 0 :(得分:5)
使用类似这样的东西
final Preference otherpref = (Preference) findPreference("otherpref");
final Preference pref = (Preference) findPreference("checkbox");
pPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(), "Some text", Toast.LENGTH_SHORT).show();
return true;
}
});
otherpref .setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(), "Other text", Toast.LENGTH_SHORT).show();
return true;
}
});