根据条件切换android复选框首选项

时间:2014-09-09 03:47:48

标签: android

我需要在单击复选框时,它应该在条件为真时显示对话框,并在条件为假时切换(选中或取消选中)。我该如何实现它?我尝试使用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;
        }

    }
}  

1 个答案:

答案 0 :(得分:0)

找到答案。需要扩展checkboxpreference并覆盖onclick()才能执行此操作。