为了账号安全,请及时绑定邮箱和手机立即绑定

将变量存储在共享偏好中,并在不同的活动中改变它们的值

将变量存储在共享偏好中,并在不同的活动中改变它们的值

陪伴而非守候 2023-11-01 22:04:40
我正在开发一个练习 7 天的锻炼应用程序。我在主要活动上设置了进度栏,并希望在几天后更改进度。意味着如果我完成第一天的锻炼,进度条设置为 15%。当我完成第 2 天时,进度设定为 30%。我可以在没有共享首选项的情况下完成此操作,它工作正常,但是当第一天完成后我关闭应用程序时,它再次将进度设置为 0 。因此,我想出于这个原因使用共享首选项。请有人指导我解决这个问题;
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

对于将值设置为共享首选项


SharedPreferences.Editor editor = getSharedPreferences("ProgressBarData", 

MODE_PRIVATE).edit();

editor.putInt("progress", 15);

editor.apply();

从共享偏好中获取价值


SharedPreferences prefs = getSharedPreferences(ProgressBarData, 

MODE_PRIVATE); 

int progress = prefs.getInt("progress", 0);


查看完整回答
反对 回复 2023-11-01
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

第一个你知道你的错误 你不能将你的数据存储在局部变量中,因为在活动结束时它破坏了所有东西,当你回到android活动时它将再次启动所有东西并且所有东西都会重新启动

您会有更好的理解

现在你的解决方案

如果你想每天存储数据和处理,最好使用本地存储,如 Sqlite、room 或共享首选项。

做任务的步骤

将数据存储、获取和删除到共享首选项需要三个步骤

用于存储、获取、删除数据

//storing

SharedPreferences.Editor editor = context.getSharedPreferences(name,Context.MODE_PRIVATE).edit();

        editor.putString(key, data);

        editor.apply();


//getting

SharedPreferences getSharedPrefrence = context.getSharedPreferences(name, Context.MODE_PRIVATE);

        int data = getSharedPrefrence.getInt(key, IntegerValuesAndStringValues.REGISTER_BEFORE_LOGIN);

        return data;


BasicFunctions.removeSharedPrefrences(getContext(),"Name of the preference");


查看完整回答
反对 回复 2023-11-01
  • 2 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信