我正在尝试在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 欢呼任何帮助
答案 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。
看起来你应该使用一个简单的整数变量(例如,类字段)。