为什么未知变量错误试图保存应用数据?

时间:2016-09-27 13:38:13

标签: android

我尝试使用SharedPreferences在我的应用中保存高分。一切都很好,除了第16和第34行;得分"。我不确定解决此问题的最佳方法。任何帮助表示赞赏。

   public class MainActivity extends Activity implements OnClickListener {

    TextView textView1;
    EditText editText1;
    Button button1;
    int counter = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.main);
        SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt("key", score);
        editor.commit();

        String score = (Integer.toString(counter));

        textView1 = (TextView)findViewById(R.id.textView1);
        editText1 = (EditText)findViewById(R.id.editText1);
        button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(this);}

    public void onClick(View v) {
        if (v == button1){
            counter++;
            editText1.setText(Integer.toString(counter));
        }

    }

}

2 个答案:

答案 0 :(得分:0)

看起来像这个例子:Write to Shared Preferences

  

SharedPreferences sharedPref = getActivity()。getPreferences(Context.MODE_PRIVATE);   SharedPreferences.Editor editor = sharedPref.edit();   editor.putInt(getString(R.string.saved_high_score),newHighScore);   editor.commit();

你真的在添加一个int吗?错误是什么?

答案 1 :(得分:0)

您没有初始化score var。试试这个:

    SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putInt("key", counter);
    editor.commit();

但是,这是错误的,因为您只会在每个活动创建调用上写入值0。将上面的代码放在一个方法中,以便您可以在适当的时候调用它。