我正在Android Studio中制作一个简单的记忆游戏。游戏包含2个活动(MainActivity,GameActivity),我需要保存GameActivity中的高分并将其显示在MainActivity中。我已经尝试使用SharedPreferences,但是MainActivity中的高分仍然为0。
这是我在GameActivity中拥有的代码:

SharedPreferences prefs;
SharedPreferences.Editor editor;
String dataName = "MyData";
String intName = "MyInt";
int defaultInt = 0;
int hiScore;

prefs = getSharedPreferences(dataName,MODE_PRIVATE);
editor = prefs.edit();
hiScore = prefs.getInt(intName, defaultInt);
editor.putInt(intName, hiScore);
editor.commit();


MainActivity中的代码:

SharedPreferences prefs;
String dataName = "MyData";
String intName = "MyString";
int defaultInt = 0;
public static int hiScore;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    prefs = getSharedPreferences(dataName,MODE_PRIVATE);
    hiScore = prefs.getInt(intName, defaultInt);
    TextView textHiScore =(TextView) findViewById(R.id.textHiScore);
    textHiScore.setText("Hi: "+ hiScore);
}

最佳答案

在GameActivity中

String intName = "MyInt";


MainActivity中的代码:

String intName = "MyString";  // change it to "MyInt"


在两个活动中对intName保持相同的参数。

10-04 11:19