SharedPreferences更改一个变量会影响其他人以及Android

问题描述:

我有一个很奇怪的问题。而且我花了3-4个小时纠正以及搜索解决方案,但没有任何结果。我在“QuestionAsked”字符串中存储变量,但不知道为什么所有其他字符串显示相同的值。SharedPreferences更改一个变量会影响其他人以及Android

也就是说,如果“QuestionAsked”是40和RecordQuestionAsked()叫,现在不仅是“QuestionAsked”但其他所有甚至字符串“XYZ”这个电话后创建的,将展示41 :(这可能是什么问题?

private void RecordQuestionAsked(){ 
     SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
     int prev = sharedPref.getInt(getString(R.string.QuestionAsked),0); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     editor.putInt(getString(R.string.QuestionAsked), prev+1); 
     editor.commit(); 
} 

if (id == R.id.menuProg) { 
      if(ll1.getVisibility()==View.VISIBLE) { 
       ll1.setVisibility(View.GONE); 
       ll3.setVisibility(View.VISIBLE); 
       SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
       int ca = sharedPref.getInt(getString(R.string.xyz),1); 
       int qa = sharedPref.getInt(getString(R.string.QuestionAsked),0); 
       pba.setProgress(ca/qa*100); 
       pbi.setProgress((qa-ca)/qa*100); 
       txtProg.setText("Correct Answers/Total Questions : " + ca + "/" + qa); 
      } 
     } 

看来,张贴在这里的问题是无用的:(

然而,撞我的头3-4天之后,代替的getString(R.string.xyz),“XYZ”两种获取和放置工作对我而言,如果有人感兴趣。