Я хочу сделать приложение для викторины.действия выполняются следующим образом: MainActivity -> ProfileActivity -> NewProfileActivity -> QuestionActivity -> ResultActivity -> основная активность.
В ProfileActivity отобразится список имен (с использованием recyclerview).и у него есть кнопка, которая вызывает startActivityForResult ().На NewProfileActivity есть кнопка, которая отправит дополнительную строку обратно в ProfileActivity.
Проблема в том, что я не хочу, чтобы NewProfileActivity возвращалась к ProfileActivity.Как передать дополнительные данные через несколько действий и затем отобразить в ProfileActivity?
В ProfileActivity
Intent intent = getIntent();
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ProfileActivity.this, NewProfileActivity.class);
startActivityForResult(intent, NEW_PROFILE_ACTIVITY_REQUEST_CODE);
}
});
В методе onActivityResult ()
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == NEW_PROFILE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
Profile profile = new Profile(intent.getStringExtra("profile_name"));
mProfileViewModel.insert(profile);
} else {
Toast.makeText(getApplicationContext(),
R.string.empty_not_saved,
Toast.LENGTH_LONG).show();
}
}
В NewProfileActivity
final Button save_profile_button = findViewById(R.id.button_save);
save_profile_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String profile_name = mProfileNameView.getText().toString();
Intent intent = new Intent(NewProfileActivity.this, QuestionActivity.class);
intent.putExtra("profile_name_extra", profile_name);
startActivity(intent);
}
});
для простоты, для остальных действий я пропускаю лишнее, помещая этот код в метод onCreate:
Intent intent = getIntent();
final String profile_name = intent.getStringExtra("profile_name_extra");
и на кнопке я помещаю этот код:
Intent intent = new Intent(QuestionActivity.this, ResultActivity.class);
intent.putExtra("profile_name_extra", profile_name);