2017-01-20 6 views
0

나는 기본적으로 다음을 수행 할 : Android - 스위치 온 상태에서 SwitchPreference의 선택을 취소 하시겠습니까?

switch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 
      @Override 
      public boolean onPreferenceChange(Preference preference, Object newValue) { 
       Boolean newVal = (Boolean) newValue; 
       if (newVal && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(getApplicationContext())) { 
        switch.setChecked(false); 
        displaySettingsDialog(); 
        return true; 
       } 

switch.setChecked(false);

실행 표시되지 않으며, displaySettingsDialog()이 발생하면서 스위치가 전환됩니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

귀하의 경우 문 외부 스위치를 넣어 시도하고 사용하는 것이다'setChecked (된 newval)'. –

+0

그래도 false로 설정하고 newVal이 true 일 때. – user2892437

+0

'newVal'의 반대로 설정하려면'setChecked (! newVal)'를 실행하십시오. –

답변

0

이 솔루션은 return false; 대신 true