在 android 工作室的 2 个活动中携带意图数据

carrying intent data throughout 2 activities in android studio

我将一些 edittext 字符串数据从第二个 activity 传送到第一个,并将字符串数据放入第一个 activity 的文本视图中。 这很好用。

当我从第一个 activity 回到第二个 activity (使用选项菜单完成)时,我想将之前输入的 edittext 数据带回到第二个的编辑文本中activity。我无法让它继续运行 - 第二个 activity edittexts 返回到原始 edittext 设置(空)。

这是我的第二个 activity 代码:

public void goToMain(View view) { //run when a button is clicked
    Intent intent = new Intent(setPlayersActivity.this, MainActivity.class);
    intent.putExtra("P1",p1EditText.getText().toString());
    startActivity(intent);
}

在我的第一个 activity 代码中,我在创建时有:

     Intent name = getIntent();
     p1TextView.setText(name.getStringExtra("P1"));

从第一个 activity 到第二个

public boolean onOptionsItemSelected(@NonNull MenuItem item) {
     if (item.getItemId() == R.id.resetAll) {
         updateScoreTeamA(scoreA = 0);
     } else if (item.getItemId() == R.id.setPlayers) {
         Intent intent = new Intent(MainActivity.this, setPlayersActivity.class);
         startActivity(intent);
     }
     return super.onOptionsItemSelected(item);
 }

到目前为止一切正常。

虽然返回到第二个 activity,但编辑文本再次为空(我想将之前输入的数据带回此 activity)。

为了用之前输入的字符串数据填充编辑文本,我在第二个 activity 的创建中尝试了以下操作。

p1EditText.setText(getIntent().getStringExtra("P1"));

在此先感谢您的帮助。我是编程初学者,无法想象没有这个社区会取得任何进展。

当您更改 activity 时,您必须为特定意图提供数据。不然不行

Intent intent = new Intent(MainActivity.this, setPlayersActivity.class);
intent.putExtra("P1","data");
startActivity(intent);