У меня есть 2 класса активности и 1 класс неактивности, который вызывает startActivityForResult () из контекста, переданного в конструктор. Вот как это выглядит: FirstActivity -> NonActivity -> SecondActivity -> FirstActivity. В SecondActivity есть ArrayList настраиваемых объектов, которые в результате необходимо передать в FirstActivity. Существует проблема. Когда вызывается onActivityResult (), resultCode равен RESULT_CANCELED, но не RESULT_OK, даже если вызывается setResult (RESULT_OK, intent). Вот мой код:
NonActivity
public void showActivity() {
Intent intent = new Intent(request, ActivityKorak.class);
intent.putExtra("data", fields);
request.startActivityForResult(intent, 1);
}
SecondActivity
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putExtra("data", fields);
setResult(Activity.RESULT_OK, intent);
finish();
}
FirstActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
if(resultCode != Activity.RESULT_CANCELED){
if(requestCode == 1) {
Bundle extras = intent.getExtras();
ArrayList<CustomInput> fields = (ArrayList<CustomInput>) extras.getSerializable("data");
}
}
}