使用sharedpreferences在android中存储和检索数字

时间:2012-06-13 11:59:32

标签: android sharedpreferences

我正在尝试在android中存储和检索数字,以便稍后我可以对结果进行计算。我正在设法存储和获取字符串,但由于某种原因似乎无法让它适用于整数

这是我测试的字符串代码

...保存

getSharedPreferences("words", 0).edit().putString("YAS", wordString).commit();

...接收

String words= getSharedPreferences("words", 0).getString("YAS", "");
t.setText(words);

但是当我用整数尝试类似的东西时,它不起作用。

...保存

getSharedPreferences("number", 0).edit().putInt("numbers", 1).commit();

...接收

int test2 = getSharedPreferences("number", 0).getInt("numbers",0);

基本上我需要在按下按钮之前保存的变量为0(我猜它会因为它在那时不存在)然后按下时更改为1。无论按下按钮多少次,它都只会等于1 欢呼任何帮助

2 个答案:

答案 0 :(得分:5)

你发表评论我认为你正在做这样的事情:

int test2 = getSharedPreferences("number", 0).getInt("numbers",0);
t.setText(test2);

这将使系统在xml ressource文件中查找具有ressource id且值为test2(在您的情况下为0)的ressource。这个资源不存在,你得到一个例外。

使用

int test2 = getSharedPreferences("number", 0).getInt("numbers",0);
t.setText(Integer.toString(test2));

代替。

答案 1 :(得分:0)

你错误的是,在按下按钮之前,SharedPrefereces不存在。在第一次 - 是的,它不存在。但是当你保存了你的价值时,无论你重启应用程序多少次,它都会存在。但是,如果您删除了应用,则也会删除SharedPrefereces。

看起来你应该使用一个简单的整数变量(例如,类字段)。