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

标签 android sharedpreferences toast

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

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

我在想也许可以上一个类:

boolean showToast(){
 //code
}

但我想,SO 可能有一个全局解决方案?

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

有什么想法吗?

最佳答案

您可以考虑扩展 Toast 以创建您的自定义类,该类足够智能,可以在显示 toast 之前读取用户偏好。

然后重构您的代码以用 SmartToast 替换 Toast。

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

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

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

关于android - 从共享首选项打开/关闭 Toast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188025/

相关文章:

Android ant构建项目失败

java - Android Studio 1.4 渲染问题 NOTE : This project contains Java compilation errors

android - 检查 SharedPrefs 是否等于 Null 时出现空指针异常

android - Toast 消息消失得比它应该的更快

android - 当我将 startActivity(Intent) 与带有对话框主题的 Activity 一起使用时,Toast 会弹出带有 Activity 标签

Android复数不起作用

android - picasso 不从 drawable (Android) 加载图像

java - 两个 SharedPreferences 不工作-java

android - 在 Android 中保存共享首选项时出现问题

java - 使用 AlarmManager 来执行将来的特定任务