为什么不能将INT保存到SharedPreferences?

Ada*_*dam 5 int android save sharedpreferences android-activity

我有一个奇怪的问题。我从来没有过 当我尝试将int值保存到我的SharedPreference中,然后在其他Activity中恢复时。即使我将其他值保存在那里,值也始终为0(例如:1);

private String Number;
private String Profile;
Run Code Online (Sandbox Code Playgroud)

然后在第一个活动中将值(在这种情况下为“ 1”)保存到SharedPreferences中:

SharedPreferences a = FirstActivity.this.getSharedPreferences("a", MODE_PRIVATE);
SharedPreferences.Editor prefsEditorProfiles = a.edit();
prefsEditorProfiles.putInt(Profile, 1);
prefsEditorProfiles.putInt(Number, 1);
prefsEditorProfiles.commit();
Run Code Online (Sandbox Code Playgroud)

然后在其他活动中还原SharedPreferences:

SharedPreferences a = SecondActivity.this.getSharedPreferences("a", MODE_PRIVATE);
int ab = a.getInt(Number, 0);
Run Code Online (Sandbox Code Playgroud)

应用程序显示0而不是1。我的其他SharedPreferences效果很好。我不知道问题出在哪里。

Bru*_*ira 5

我将检查您声明的Number和Profile变量的值是什么...您将它们的值用作键,因此,如果它们的名称冲突,即使代码看起来正确,也可能会覆盖另一个设置。

我建议替换为:

私有字符串号;
私有字符串配置文件;

有了这个:

私有最终字符串NUMBER =“ Number”;
private final String PROFILE =“个人资料”;

然后在设置/获取您的首选项值时使用这些常量。