2013-03-03 13 views
6

क्या साझा प्राथमिकताओं में चेकबॉक्स के साथ टोस्ट नोटिफिकेशन को चालू और बंद करने का कोई तरीका है?साझा प्राथमिकताओं से टोस्ट चालू/बंद करें?

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

मैं शायद एक वर्ग बनाने में सोच रहा था:

boolean showToast(){ 
//code 
} 

लेकिन सोचा, अतः एक वैश्विक समाधान हो सकता है?

क्या मुझे एक अलग प्रकार की अधिसूचना प्रणाली का उपयोग करना चाहिए?

कोई विचार?

+0

आप सही रास्ते पर हैं। मैंने इसे अपनी सेटिंग्स में एक बटन के साथ हल किया है, 'showToast' को टॉगल करने के लिए देखें। मैंने हर बार 'if (showToast) {...}' दोहराने की आवश्यकता के बिना इसे हर बार जांचने के लिए 'Toast.makeText()' के चारों ओर एक रैपर बनाया है। – ConcurrentHashMap

उत्तर

0

आप साझा प्राथमिकताओं में चेकबॉक्स मान क्यों नहीं डालते हैं और फिर उपयोग ध्वज के रूप में करते हैं, उदाहरण के लिए यदि (ध्वज) {शो टोस्ट} है, तो यह वही नहीं है?

0

आप केवल अक्षम करते हैं या कर उर रास्ते की तरह अपने appplication के लिए टोस्ट सूचनाएं सक्षम ... लेकिन सभी आवेदनों

के लिए विश्व स्तर पर नहीं
0

आप एक तत्व के साथ एक enum बनाने की कोशिश कर सकते -

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"); 

जब आप पानी एनटी चालू या बंद करने के लिए - आप बस मेक टोस्ट() विधि में ऐसा कर सकते हैं।

0

SharedPreferenceChangeListener पर उपयोग करें।

1

आप अपनी कस्टम कक्षा बनाने के लिए टोस्ट को विस्तारित करने पर विचार कर सकते हैं जो टोस्ट दिखाने से पहले उपयोगकर्ता प्राथमिकताओं को पढ़ने के लिए पर्याप्त स्मार्ट है।

फिर SmartToast के साथ टोस्ट को प्रतिस्थापित करने के लिए अपने कोड को दोबारा दोहराएं।

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

तो SmartToast.makeText() को लागू SmartToast का एक उदाहरण लौट सकते हैं और शो ओवरराइड करने के लिए() इस प्रकार है:

@Override 
public void show() { 
    if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("showToast", true)) { 
     super.show(); 
    } 
} 
संबंधित मुद्दे