2013-03-03 2 views
6

공유 환경 설정의 확인란을 사용하여 토스트 알림을 전체적으로 사용하거나 사용 중지 할 수있는 방법이 있습니까?공유 환경 설정에서 토스트를 켜거나 끕니까?

boolean showToast(){ 
//code 
} 

을하지만 생각 SO 세계적인 해결책을 가지고 있습니다

PreferenceManager.setDefaultValues(this, R.xml.preferences, false); 
     boolean showToast = myPrefs.getBoolean("showToast", 
       true); 

나는 어쩌면 클래스를 만드는 생각했다?

다른 유형의 알림 시스템을 사용해야합니까?

의견이 있으십니까?

+0

을 다음과 같이

SmartToast.makeText(this, "message", Toast.LENGTH_SHORT).show();

그래서) (SmartToast의 인스턴스를 반환하고 쇼를 재정의 SmartToast.makeText()를 구현합니다. 내 설정보기에서 버튼을 사용하여 'showToast'를 (를) Google에 비슷한 방식으로 해결했습니다. 매번'if (showToast) {...} '를 반복 할 필요없이 매번 이것을 체크하기 위해 Toast.makeText()를 둘러싼 래퍼를 만들었습니다. – ConcurrentHashMap

답변

0

공유 환경 설정에 체크 상자 값을 넣은 다음 is를 플래그로 사용하지 않는 이유는 무엇입니까? 예를 들어, (toast)를 표시하면 이것이 동일하지 않습니까?

0

할 수 있습니다 만 해제하거나 그 일을 통해 UR 방식처럼 appplication에 대한 토스트 알림을 활성화 ...하지만 전 세계적으로 모든 응용 프로그램

에 대한
0
당신은 하나 개의 요소가있는 열거 형을 만드는 시도 할 수 있습니다

-

public enum YourSingleton { 
INSTANCE; // element in this enum 

public static void makeToast(Context context, String msg) { 
    Toast toast = Toast.makeText(context, msg, Toast.LENGTH_LONG); 
    toast.show(); 
} 

} 그리고 호출 할 -

YourSingleton .makeToast(this, "Toast Message"); 

당신이 워싱턴 할 때 nt를 켜거나 끄려면 - makeToast() 메소드에서 간단히 수행 할 수 있습니다.

0

은 onSharedPreferenceChangeListener를 사용합니다.

1

토스트를 표시하기 전에 사용자 기본 설정을 읽을 정도로 스마트 한 사용자 정의 클래스를 만들기 위해 Toast를 확장하는 것이 좋습니다.

그런 다음 Toast를 SmartToast로 바꾸려면 코드를 리팩토링하십시오. 당신은 옳은 길을 가고있어

@Override 
public void show() { 
    if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("showToast", true)) { 
     super.show(); 
    } 
} 
관련 문제