当前位置: 首页 > 知识库问答 >
问题:

在我的主activity中偏好不会改变

陶英纵
2023-03-14

在MainActivity中,我有一个TextView。在这个textView中,有一个数字我保留在SharedPreferences中。并且每隔几分钟SharedPreferences就会用一个报警管理器更改一次,但是我的MainActivity中的SharedPreferences不会更改,任何人都知道为什么吗?

这是MainActivity中代码的一部分

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    int ReleaseDate = preferences.getInt("com.fisher.freedom.ReleaseDate", 0);
    TextView edit = (TextView) findViewById(R.id.DaysLeft);

    Toast.makeText(MainActivity.this, "" + preferences.getInt("com.fisher.freedom.ReleaseDate", 0), Toast.LENGTH_SHORT).show();
    edit.setText("" + ReleaseDate);

这是警报接收器中的代码

    public static final String ReleaseDate_Key = "com.fisher.freedom.ReleaseDate";

    @Override
    public void onReceive(Context context, Intent intent) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        int ReleaseDate = preferences.getInt(ReleaseDate_Key, 0);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putInt(ReleaseDate_Key, --ReleaseDate);
        editor.apply();



共有1个答案

蒯硕
2023-03-14

要获取int的值,请使用以下命令:

SharedPreferences sharedPreferences = getSharedPreferences(getApplicationContext().getPackageName(),0);
int ReleaseDate = sharedPreferences.getInt("ReleaseDate",0);

要保存它,请使用以下命令:

SharedPreferences prefs = getSharedPreferences(getApplicationContext().getPackageName(), Context.MODE_PRIVATE);
prefs.edit().putInt("ReleaseDate", ReleaseDate).commit();

这样你就不用写静态变量你的包名了,它对我有用,所以它对你也有用。

 类似资料:
  • 我刚刚在我的项目中启用了迁移,并在中添加了几个字段: I并创建: 产生了以下输出: 显然一切都进行得很顺利,但在收到一个错误,即column CreatedOn不存在之后,我用服务器资源管理器查看了数据库,事实上,我的表中缺少了所有4个column。我做错了什么? 我发现了我的错误。不知何故,我有两个不同的文件和具有相同的文件大小,我认为两者都是必要的。我的服务器资源管理器正在使用,数据库更改为。

  • 你好,我想更改默认activity。但当我这样做的时候,应用程序启动时不会出现任何错误 这样Mainactivy就可以毫无问题地启动了。当我按下按钮时,它也会转到设备activity。所以一切正常。现在我需要DevcieACtivty成为默认的一个。 我就这样改变舱单 但现在应用程序没有上线。没有错误。控制台中没有任何内容。只是什么都做不到,会有什么问题吗? 开始写入以下错误ActivityMan

  • 所以我试图让我的按钮在我的导航抽屉碎片中打开新的活动,但是我的mainactivity中有什么东西坏了。java 我的mainactivity.java.... 我的奖励碎片... } 问题是它在下有一个红色下划线,我不知道如何修复它 我试过了所有的办法,这就是我目前所拥有的… } 我的setContentView是鲜红的,我的findViewByID是红色的,最后是(rewardsFragmen

  • 我有一个这样的旋转器: 当用户点击时,我希望它保存状态: 它将位置保存在SharedPref中,但微调器将返回默认值。有人看到什么了吗?

  • 通用设置 打开软件时 打开 Sketch 时,你需要创建一个新的文件,或者选择现有文件。 撤销 Sketch 会将多个相似的操作视为一组,比如你连续多次按下方向键以移动图层,但是只需一次撤销,即可恢复原来的位置。 字体渲染 当你为 Mac 或网页设计时,你会想打开子像素抗锯齿效果,但是为 iOS 设计时,你会想关掉它。 矢量导入 这个选项让你在导入 PDF 或者 EPS 的时候告诉 Sketch,

  • Navicat Data Modeler 提供一些选项让你自定义用户界面和性能。 若要打开偏好设置窗口,从菜单栏选择“Navicat Data Modeler”->“偏好设置”。