2013-10-15 3 views
-1

내 앱에서 푸시 알림을 위해 parse.com을 사용하고 있습니다. 이 같은 응용 프로그램 설정에 "해제 통지"옵션 추가 :구문 분석 알림 사용 안 함

<PreferenceCategory android:title="Obvestila" > 
    <CheckBoxPreference 
     android:defaultValue="true" 
     android:key="prefNotification" 
     android:summary="Za obvestila je potrebna internetna povezava" 
     android:title="Prejemal obvestila" /> 
</PreferenceCategory> 

을 그리고 MainActivity에이 방법을 추가 : 이제 문제는이 부분적으로 만 작동한다는 것입니다

public void getSettingsPrefs(){ 
    SharedPreferences settingsPrefs = PreferenceManager.getDefaultSharedPreferences(this); 
    notification = settingsPrefs.getBoolean("prefNotification", true); 

    if (notification == false) 
    { 
     PushService.setDefaultPushCallback(this, null); 
    } 
    else 
    { 
     PushService.setDefaultPushCallback(this, MainActivity.class); 
    } 
} 

합니다. 설정에서 확인란을 선택하거나 선택 취소하면 mainActivity를 완전히 다시 열어야 getSettingsPrefs()가 onCreate에서 실행됩니다. 확인란을 선택했을 때마다 IF 문을 실행하려면 어떻게합니까?

답변

0

OnPreferenceChangeListener를 추가하여이 문제를 직접 해결했습니다.

notification = (CheckBoxPreference) findPreference("prefNotification"); 
    notification.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){ 

     @Override 
     public boolean onPreferenceChange(Preference preference, 
       Object newValue) { 
      if (newValue.toString().equals("true")) 
      { 
       notificationsOn(); 
      } 
      else 
      { 
       notificationsOff(); 
      } 
      return true; 
     } 

    }); 
관련 문제