我有这个代码在我的Activity中存储一个值:
tv_addzekr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
nowzekr=nowzekr+1;
tv_nowzekr.setText(nowzekr+":the score");
savecurrentzekr(nowzekr);
}
});
然后我用这个方法保存nowzekr值:
public void savecurrentzekr (int id){
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
editor.putInt("your_int_key", id);
editor.commit();
}
并在我的活动中使用此鳕鱼加载我的存储值:
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int myint = sp.getInt("your_int_key", 0);
nowzekrr=nowzekr+myint;
tv_beforzekr.setText(nowzekrr+":stored value");
现在我想将以前的存储值添加到新值,意味着将旧的存储值和当前输入的值相加,但它总是显示我最后存储的值而不是值的总和,任何人都可以帮助我哪里的鳕鱼错了? 例如,如果我输入10为“nowzekr”,“nowzekrr”总是显示10,如果我再次输入25为“nowzekr”,再次“nowzekrr”显示25并且不显示35
答案 0 :(得分:0)
public void savecurrentzekr (int id){
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", sp.getInt("your_int_key", 0) + id);
editor.commit();
}
无需调用clear()
方法 - 值将自动替换。