2

这是我的代码:

package com.example.sharedprefs;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
    int i = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    public void doThis (View view){
        i++;
        SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
        SharedPreferences.Editor prefEditor = sharedPref.edit();
        prefEditor.putInt("userChoice",i);
        prefEditor.commit();
        int number = sharedPref.getInt("userChoice", 0);
        Toast.makeText(getApplicationContext(), number + "" , Toast.LENGTH_LONG).show();
        this.finish();

    }

}

当应用程序运行时,我再次运行它。我经常得到“1”作为祝酒词。我试图得到 1 和 2 和 3 等等。有任何想法吗?我知道这不是程序,而是此时的“程序员”。提前致谢

4

1 回答 1

2

第一条评论中给出的答案;SharedPreferences 逻辑错误

你应该把下面的代码

SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
i = sharedPref.getInt("userChoice", 0); 

onCreate()您的活动中的 - 方法中。

在您的代码中,每次启动此 Activity 时 i 为 0。

于 2012-10-21T08:01:38.570 回答