java - 在按下按钮和 finish() 后,resultCode 的值为 -1,但在按下后退按钮后,即使在相应函数中使用相同的代码,结果代码的值为 0

标签 java android android-activity startactivityforresult

我有一个 RecyclerView,其 Adapter.class 位于单独的文件中,但适配器中的 onClickListener 可以通过 startActivityForResult 正常启动第二个 Activity。当我有用户输入时,我希望应用程序将数据发送回第一个 Activity,该 Activity 仅在用户使用我提供的按钮时才起作用,但当他使用后退按钮时则不起作用,即使它在相应的函数中运行相同的代码也是如此。

我将完全相同的代码从按钮复制​​到了 onBackPressed、onPause 和 onDestroy,但是 Destroy 运行得太晚了,另外两个导致 Activity 1 中的 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 就好,但是当我不使用按钮但后退按钮 resultCode = 0 且 ActivityResult 中的数据为空时。我不知道有什么区别

最佳答案

尝试在父类(super class)调用的onBackPressed之前设置结果:

     @Override
     public void onBackPressed() {
        back.putExtra("ANSWER", answer.getText().toString());
        back.putExtra("QUESTION_ID", questionId);
        setResult(RESULT_OK, back);
        super.onBackPressed();
     }

关于java - 在按下按钮和 finish() 后,resultCode 的值为 -1,但在按下后退按钮后,即使在相应函数中使用相同的代码,结果代码的值为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777834/

相关文章:

java - DocuSign 异常处理

android - 在 Activity 外启动 Intent

android - 在整个 Activity 中重复使用 String 或 Int?

android - Activity生命周期与数据库困惑

java - 如何制作一个正方形来查看画廊?

java - 为什么 String.valueOf(null) 会导致空指针异常?

java - 此正则表达式的 MySQL SQL REGEX 是什么

android - 添加新联系人(36 项)

android - 如何将 Listview 的内容发送到另一个 Activity?

android Activity 不是全屏 Theme.Dialog 应用程序已停止