如何保存使用intent输入的字符串用户然后转到其他活动?

时间:2018-06-08 08:01:41

标签: android android-intent

我想创建一个测验应用。在ProfileActivity上是使用recycleler视图的列表名称。在NewProfileActivity上,用户需要输入他们的名字,名称将显示在ProfileActivity上。

这是NewProfileActivity中的代码按钮:

final Button save_profile_button = findViewById(R.id.button_save);
    save_profile_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent save_profile_intent = new Intent();
            if (TextUtils.isEmpty(mProfileNameView.getText())) {
                setResult(RESULT_CANCELED, save_profile_intent);
            } else {
                String profile_name = mProfileNameView.getText().toString();
                save_profile_intent.putExtra(EXTRA_REPLY, profile_name);
                setResult(RESULT_OK, save_profile_intent);
            }
            finish();
        }
    });

它将返回到ProfileActivity,并能够显示用户输入的名称。 但是当我更改流程时,从NewProfileActivity到QuestionActivity,该名称不会出现在ProfileActivity上。这段代码不起作用:

final Button save_profile_button = findViewById(R.id.button_save);
    save_profile_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent save_profile_intent = new Intent();
            if (TextUtils.isEmpty(mProfileNameView.getText())) {
                setResult(RESULT_CANCELED, save_profile_intent);
            } else {
                String profile_name = mProfileNameView.getText().toString();
                save_profile_intent.putExtra(EXTRA_REPLY, profile_name);
                setResult(RESULT_OK, save_profile_intent);
            }

            Intent goto_question_intent = new Intent(NewProfileActivity.this, QuestionActivity.class);
            startActivity(goto_question_intent);
        }
    });

如何更改流量并仍能显示名称? 使用此流程: MainActivity - > ProfileActivity - > NewProfileActivity - > QuestionActivity - > ResultActivity - > MainActivity - > ProfileActivity

2 个答案:

答案 0 :(得分:0)

尝试使用“共享首选项”来保存少量数据。

https://developer.android.com/training/data-storage/shared-preferences

通过“共享首选项”保存数据后,无论“活动”更改如何,您都可以随时获取并显示数据。

在您的情况下,您可以在按钮点击事件中执行类似的操作

SharedPreferences pref = getApplicationContext().getSharedPreferences("YourPrefNameHere", Context.MODE_PRIVATE);
Editor editor = pref.edit();

editor.putString("your_key_name", "put the value you want to save here");

当您想要显示已保存的值时,只需获取它并将其显示在您想要的任何Activity

pref.getString("your_key_name", null);

答案 1 :(得分:0)

如果您只使用一次,则可以使用startActivityForResult https://developer.android.com/reference/android/app/Activity#starting-activities-and-getting-results