我通过活动传递的数据不保存?

时间:2018-04-23 22:34:50

标签: java android

有人可以向我解释我做错了什么吗?或者如果一旦找到问题的解决方案,请你解释一下我做错了什么,谢谢。

代码来源

 final Button nameActivity = (Button) findViewById(R.id.nameActivity);
 nameActivity.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
         userFirstName = firstName.getText().toString();
         userLastName = lastName.getText().toString();
         Intent nameIntent = new Intent(MainActivity.this, NameActivity.class);
         Bundle nameInfoBundle = new Bundle();
         nameInfoBundle.putString(States.STATE_FIRSTNAME, userFirstName);
         nameInfoBundle.putString(States.STATE_LASTNAME, userLastName);
         startActivity(nameIntent);
     }
 });

2 个答案:

答案 0 :(得分:1)

您可以使用SharedPreferences在应用被杀死时预先存储数据。

将数据保存到SharedPreferences即可。

private void saveDataToSharedPreferences() {
    SharedPreferences pref = getSharedPreferences("MyPrefs", MODE_PRIVATE);
    SharedPreferences.Editor edit = pref.edit();
    edit.putString(States.STATE_FIRSTNAME, userFirstName);
    edit.putString(States.STATE_LASTNAME, userLastName);
    edit.commit();
}

现在您可以执行此操作来检索数据:

private void retrieveDataFromSharedPreferences() {
    try {
        SharedPreferences pref = getSharedPreferences("MyPrefs", MODE_PRIVATE);
        String firstName = pref.getString(States.STATE_FIRSTNAME);
        String lastName = pref.getString(States.STATE_LASTNAME);
    }
    catch (Exception ex) {
        Log.e(TAG, ex.getMessage());
    }
}

您正在做的是将数据保存在Intent中并将其传递给Activity。只要应用处于有效状态,数据就会保留在Intent中 - 不会保存。

答案 1 :(得分:0)

试试这个:

    Intent nameIntent = new Intent();
    nameIntent.putExtra(States.STATE_FIRSTNAME, userFirstName);
    nameIntent.putExtra(States.STATE_LASTNAME, userLastName);

在NameActivity的onCreate()方法中使用它来检索值:

    Intent intent = getIntent();
    String userFirstName = intent.getExtras(States.STATE_FIRSTNAME);
    String userLastName = intent.getExtras(States.STATE_LASTNAME);