android:使用存储的值并为其添加新值

时间:2015-05-14 14:37:05

标签: android sharedpreferences

我有这个代码在我的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

1 个答案:

答案 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()方法 - 值将自动替换。