onResume()不从onPause()中提取信息

时间:2012-10-27 19:47:56

标签: android android-intent

我正在制作这个基于小文字的RPG游戏,用户可以选择他们的名字,种族,班级等......

我有一个活动,用户键入他们想要使用的名称,然后从微调器中选择种族,类。

然后,当他们点击“创建角色”按钮时,它们全部转移到下一个活动。这非常有效。

问题出在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));

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

1 个答案:

答案 0 :(得分:0)

如果要在活动之间使用SharedPreferences存储,请使用getSharedPreferences()而不是getPreferences。详情请见here

另外,请勿忘记在进行更改后致电editor.commit()