我需要在单击复选框时,它应该在条件为真时显示对话框,并在条件为假时切换(选中或取消选中)。我该如何实现它?我尝试使用OnSharedPreferenceChangeListener和OnPreferenceClickListener(参见下面的伪代码)。当条件为真时,对话框会显示,但复选框偏好也会被切换 - 如何避免它?
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
if(key.equals("mykey"))
{
if(condition)
{
showDialog(this);
return;
}
else
{
//logic to process prefernce change
}
}
}
这是我尝试使用preferenceclicklistener
的另一件事public boolean onPreferenceClick(Preference preference)
{
if(preference.getKey().equals("mykey"))
{
if(condition)
{
showDialog(this);
//returning true below means i have handled the click and it should not do anything
// else. Why is checkboxpreference getting toggled?
return true;
}
}
}
答案 0 :(得分:0)
找到答案。需要扩展checkboxpreference并覆盖onclick()才能执行此操作。