1

我正在制作这款基于文本的小型 rpg 游戏,用户可以在其中选择自己的姓名、种族、班级等……

我有一项活动,用户键入他们想要使用的名称,然后从微调器中选择比赛、班级。

然后当他们点击 Create character 按钮时,这一切都转移到下一个活动。这完美无缺。

问题在于保存数据时的 onPause 事件。onResume() 方法不起作用?视图只是显示为空白。

继承人选择的代码:

(这是从其他活动中提取数据的地方)

String Name = getIntent().getStringExtra("strName");
    textViewStrName.setText(Name);

    String Race = getIntent().getStringExtra("strRace");
    textViewStrRace.setText(Race);

    String Class = getIntent().getStringExtra("strClass");
    textViewStrClass.setText(Class);

(这是 onPause() 方法)

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.clear();
    String strName = textViewStrName.getText().toString();
    String strRace = textViewStrRace.getText().toString();
    String strClass = textViewStrClass.getText().toString();
    editor.putString("strName", strName);
    editor.putString("strRace", strRace);
    editor.putString("strClass", strClass);
editor.commit();

(这是 onResume() 方法)

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    TextView textViewStrName = (TextView) findViewById(R.id.textViewStrName);
    TextView textViewStrRace = (TextView) findViewById(R.id.textViewStrRace);
    TextView textViewStrClass = (TextView) findViewById(R.id.TextViewStrClass);
    TextView textViewStrAlliance = (TextView) findViewById(R.id.textViewStrAlliance);


        textViewStrName.setText(preferences.getString("strName", null));
        textViewStrRace.setText(preferences.getString("strRace", null));
        textViewStrClass.setText(preferences.getString("strClass", null));
        textViewStrAlliance.setText(preferences.getString("strAlliance",
                null));

运行应用程序时,我没有收到任何错误。

4

1 回答 1

0

如果要在活动之间使用 SharedPreferences 存储,请使用 getSharedPreferences() 而不是 getPreferences。在此处查看详细信息。

也不要忘记editor.commit()在进行更改后打电话。

于 2012-10-27T19:50:43.813 回答