перенос данных о намерениях в течение 2 действий в Android studio

#java #android #android-intent

#java #Android #android-намерение

Вопрос:

я перенес некоторые строковые данные edittext из второго действия в первое и поместил строковые данные в textviews в первом действии. это сработало нормально.

когда я перехожу от первого действия ко второму действию (выполняется с помощью меню опций), я хочу перенести ранее введенные данные edittext обратно в редактируемые тексты во втором действии. я не могу перенести его — во втором действии edittexts возвращаются к исходным настройкам edittext (пустым).

это мой второй код действия:

 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);
}
 

и в моем первом коде действия, который у меня есть при создании:

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

чтобы перейти от первого действия ко второму

 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);
 }
 

до сих пор все работает нормально.

однако при возвращении ко второму действию edittexts снова становятся пустыми (я хочу перенести ранее введенные данные обратно в это действие).

чтобы заполнить edittexts ранее введенными строковыми данными, я попробовал выполнить следующее при создании второго действия.

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

заранее спасибо за помощь. я новичок в программировании и не могу представить, как добиться какого-либо прогресса без этого сообщества.

Ответ №1:

При изменении вашей активности вы должны предоставить данные для этого определенного намерения. В противном случае это не будет работать

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