startActivityForResult () возвращает RESULT_CANCELED

У меня есть 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");
        }
    }
}

person jelic98    schedule 19.09.2016    source источник
comment
Код вызывается? Поскольку super.onBackpressed (); выше этого?   -  person Jemil Riahi    schedule 19.09.2016
comment
Вот в чем проблема. Я принял ответ ниже.   -  person jelic98    schedule 20.09.2016


Ответы (1)


Вы должны просто удалить

super.onBackPressed();

в методе onBackPressed

Что происходит, так это то, что «super.onBackPressed ()» устанавливает код результата на «RESULT_CANCELED» и завершает вашу деятельность.

person Danny Yassine    schedule 19.09.2016
comment
МОЙ БОГ! Большое спасибо. - person jelic98; 19.09.2016