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”两种获取和放置工作对我而言,如果有人感兴趣。