onActivityResult的ResultCode始终为0

4

以下是我的代码,用于处理 setResult。我总是会得到ResultCode = 0

  @Override
        public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
            Debug.i("Response Status Complete " + response.code());
            if (response.code() == 200) {
                Debug.i("Response Status Complete " + response);

                mSectionTopic.isComplete = 1;
                mSectionTopic.status = "completed";

                Intent intent = new Intent();
                intent.putExtra(Util.getIntentName("sectionTopic"), mSectionTopic);
                intent.putExtra(Util.getIntentName("challengeId"), "AIzaSyBkSGK9geQ4QbnvXcQQ_m2JScd7r89xnJs");
                intent.putExtra(Util.getIntentName("position"), mPosition);

                setResult(Activity.RESULT_OK, intent);
                finish();

            } else {
                showError(getString(R.string.text_post_question_failed));
            }

但是如果代码onBackPressed();的结果代码正常工作。

我的代码有什么问题?

--

这是我的onActivityResult()函数。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQ_CODE && resultCode == Activity.RESULT_OK) {
        if (data == null) return;
        int position = data.getIntExtra(Util.getIntentName("position"), 0);
        mAdapter.setComplete(position);
        mAdapter.notifyDataSetChanged();

    }
}

在开始活动和将结果设置为活动时,请分享您的代码。 - AGM Tazim
“但如果代码 onBackPressed(); resultcode 生效” 的意思是什么? - A Nice Guy
@Arnab,是的,如果我在onBackPressed中使用IntentsetResult进程,我就无法得到resultCode = 0 - Menda
你是如何启动Activity的?是使用了startActivityForResult()吗? - Chandrakanth
如果你想从活动A启动活动B,并且要在B中获取结果并返回到A中,那么你必须在A中使用startActivityForResult()方法来启动B。 - Chandrakanth
显示剩余2条评论
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接