我开发了一个游戏,每次点击“重新匹配”按钮时我都要增加textview值 我使用共享首选项保存textview值,它工作正常。 问题是“如果我点击我的5次按钮然后值显示5,然后如果我关闭应用程序并再来它显示5(所以共享pref工作正常)但当我再次点击重新匹配它再次启动textview值从1开始,虽然我的预期结果是6,因为5已经保存了
这是我的oncreate方法的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
tValue = sp.getString("textvalue","");
coins=(TextView)findViewById(R.id.textView1);
coins.setText(tValue);
并点击按钮点击我这样做
count++;
coins.setText(String.valueOf(count));
SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
SharedPreferences.Editor sedt = sp.edit();
sedt.putString("textvalue", coins.getText().toString());
sedt.commit();
答案 0 :(得分:0)
问题是您使用count
而不是tValue
的值。所以不要count++
但是将tValue
保存为int并增加该值。同样做setText(tValue)
。然后它会工作。祝你好运。
答案 1 :(得分:0)
那是因为计数再次开始为0, 当你按下按钮时,它将增加到1.
所以在你获得保存的价值之后的onCreate
中。
将其分配给计数,例如:
count = Integer.parseInt(tValue);
希望这会帮助你。
答案 2 :(得分:0)
我认为问题是当你再次启动活动时计数为0.你必须从保存的值开始计数,这可能是一种方法
count = Integer.valueOf(sp.getString("textValue",""))