Как управлять активностью с помощью startActivityForResult
У меня такая ситуация:
Деятельность A -> B -> C -> D, когда D закончил, я должен обновить ActivityA, чтобы отобразить то, что я ввел в ActivityB, ActivityC и ActivityD. Вот мой код:
ActivityA
@OnClick(R.id.btn_one)
public void toActivityB(){
Intent intent = new Intent();
intent.setClass(this, ActivityB.class);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK){
String b = data.getStringExtra("b");
String c = data.getStringExtra("c");
String d = data.getStringExtra("d");
tvAll.setText(etOne.getText().toString() + "\n" + b + "\n" + c + "\n" + d);
}
}
ActivityB
@OnClick(R.id.btn_two)
public void toActivityC(){
Intent intent = new Intent();
intent.setClass(this, ActivityC.class);
startActivityForResult(intent, 2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 2 && resultCode == RESULT_OK){
data.putExtra("b", etTwo.getText().toString());
setResult(RESULT_OK, data);
finish();
}
}
Код ActivityC так же, как ActivityB, последний ActivityD следующим образом:
@OnClick(R.id.btn_four)
public void returnToActivityA(){
Intent intent = new Intent();
intent.putExtra("d", etFour.getText().toString());
setResult(RESULT_OK, intent);
finish();
}
Таким образом, я могу получить входное значение в ActivityB, ActivityC, ActivityD.но мне нужно переопределить методonActivityResult
в каждой деятельности и обрабатывать данные по одному. Есть ли другой простой способ справиться с этой ситуацией? Любое хорошее предложение, я буду признателен.