在Android中,更改一个变量的SharedPreferences也会影响其他变量

时间:2016-12-24 22:26:59

标签: java android sharedpreferences

我有一个非常奇怪的问题。我花了3-4个小时纠正以及谷歌搜索解决方案,但没有。我将变量存储在“QuestionAsked”字符串中,但不知道为什么所有其他字符串都显示相同的值。

即。如果“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 );
            }
        }

1 个答案:

答案 0 :(得分:0)

似乎在这里发布问题是没用的:(

然而,在我的头部撞了3-4天后,而不是getString(R.string.xyz)," xyz"如果有人感兴趣的话,我可以为我工作。