猿问

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

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



陪伴而非守候
浏览 101回答 2
2回答

沧海一幻觉

对于将值设置为共享首选项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);

吃鸡游戏

第一个你知道你的错误 你不能将你的数据存储在局部变量中,因为在活动结束时它破坏了所有东西,当你回到android活动时它将再次启动所有东西并且所有东西都会重新启动您会有更好的理解现在你的解决方案如果你想每天存储数据和处理,最好使用本地存储,如 Sqlite、room 或共享首选项。做任务的步骤将数据存储、获取和删除到共享首选项需要三个步骤用于存储、获取、删除数据//storingSharedPreferences.Editor editor = context.getSharedPreferences(name,Context.MODE_PRIVATE).edit();        editor.putString(key, data);        editor.apply();//gettingSharedPreferences 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");
随时随地看视频慕课网APP

相关分类

Java
我要回答