Android 从共享首选项打开/关闭Toast?

Android 从共享首选项打开/关闭Toast?,android,sharedpreferences,toast,Android,Sharedpreferences,Toast,有没有办法通过共享首选项中的复选框全局打开和关闭toast通知 PreferenceManager.setDefaultValues(this, R.xml.preferences, false); boolean showToast = myPrefs.getBoolean("showToast", true); 我在想也许可以上一节课: boolean showToast(){ //code } 但是我想,那么可能有一个全球性的解决方案吗

有没有办法通过共享首选项中的复选框全局打开和关闭toast通知

PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
        boolean showToast = myPrefs.getBoolean("showToast",
                true);
我在想也许可以上一节课:

boolean showToast(){
 //code
}
但是我想,那么可能有一个全球性的解决方案吗

我应该使用不同类型的通知系统吗


有什么想法吗?

为什么不在共享首选项中添加复选框值,然后使用is作为标志,例如(flag){show toast},这不一样吗?

您只能像现在这样为您的应用程序禁用或启用toast通知……但不能全局地为所有应用程序禁用或启用toast通知

您可以尝试使用一个元素创建枚举-

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();
}
} 然后致电-


当您想打开或关闭时,您可以简单地在<强> MaKooStAd()/<强>方法中使用.< /P> < P>使用OnSyrdPraseCuxelistist.< /P> < P> >您可以考虑扩展toAST来创建您的自定义类,该类在显示图示之前足够智能地读取用户首选项。 然后重构代码,用SmartToast替换Toast


SmartToast.makeText(此“消息”,Toast.LENGTH_SHORT).show();

因此,请实现SmartToast.makeText()以返回SmartToast的实例并覆盖show(),如下所示:

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

你走对了路。我已经解决了类似的问题,在我的设置视图中有一个按钮,用来调整
showtoos
。我为
Toast.makeText()
做了一个包装,每次都检查这个,而不需要每次重复
if(showtoos){…}
@Override
public void show() {
    if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("showToast", true)) {
        super.show();
    }
}