2014-09-09 3 views
1

У меня есть необходимость, когда я нажимаю на checkboxpreference, он должен отображать диалог, когда условие истинно и переключается (проверяют или снимают галочку), когда условие ложно. Как его реализовать? Я пробовал играть как с OnSharedPreferenceChangeListener, так и с OnPreferenceClickListener (см. Ниже псевдокод). Когда условие истинно, диалог появляется, но checkboxpreference также переключается - как его избежать?Переключить предпочтение checkbox на основе состояния

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

нашел ответ. Для этого нужно расширить checkboxpreference и переопределить onclick().

Смежные вопросы