У меня есть RecyclerView с его Adapter.class в отдельном файле, но onClickListener в адаптере запускает вторую активность просто отлично с startActivityForResult. Когда у меня есть пользовательский ввод, я хочу, чтобы приложение отправляло данные обратно в первое действие, которое работает только тогда, когда пользователь использует предоставленную мной кнопку, но не когда он использует кнопку, даже когда он выполняет тот же код в соответствующих функциях.
Я скопировал точно такой же код с кнопки в onBackPressed, onPause и onDestroy, но при Destroy запускается слишком поздно, а два других приводят к тому, что resultCode равен 0 и данные в NULL равны нулю. Я изменил setResult и его аргументы ко всем возможным вариантам, которые я нашел (RESULT_OK + Intent, Activity.RESULT_OK + Intent и просто RESULT_OK).
back = new Intent (this, MainActivity.class);
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
back.putExtra("ANSWER", answer.getText().toString());
back.putExtra("QUESTION_ID", questionId);
setResult(RESULT_OK, back);
finish();
}
});
@Override
public void onBackPressed() {
super.onBackPressed();
back.putExtra("ANSWER", answer.getText().toString());
back.putExtra("QUESTION_ID", questionId);
setResult(RESULT_OK, back);
}
@Override
protected void onPause() {
super.onPause();
back.putExtra("ANSWER", answer.getText().toString());
back.putExtra("QUESTION_ID", questionId);
setResult(RESULT_OK, back);
}
если я использую кнопку, она передает данные и устанавливает значение resultCode равным -1, но когда я не использую кнопку, а кнопка backCode = 0 и данные в ActivityResult равны нулю. Я не знаю, в чем разница