Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置结果不工作_Java_Android_Android Intent_Android Activity - Fatal编程技术网

Java 设置结果不工作

Java 设置结果不工作,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,在我的第一个活动中,我这样称呼第二个活动: Intent intent = new Intent(getActivity(), SecondActivity.class); startActivityForResult(intent, SOME_TAG); 然后在第二个活动中: @Override public void onBackPressed() { Intent returnIntent = new Intent(); setResult(AppCompatActivi

在我的第一个活动中,我这样称呼第二个活动:

Intent intent = new Intent(getActivity(), SecondActivity.class);
startActivityForResult(intent, SOME_TAG);
然后在第二个活动中:

@Override
public void onBackPressed() {
    Intent returnIntent = new Intent();
    setResult(AppCompatActivity.RESULT_OK, returnIntent);
    super.onBackPressed();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case SOME_TAG:
            if (resultCode == AppCompatActivity.RESULT_OK) {
                doStuff();
            }
            break;
        default:
            break;
    }
}
回到第一个活动:

@Override
public void onBackPressed() {
    Intent returnIntent = new Intent();
    setResult(AppCompatActivity.RESULT_OK, returnIntent);
    super.onBackPressed();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case SOME_TAG:
            if (resultCode == AppCompatActivity.RESULT_OK) {
                doStuff();
            }
            break;
        default:
            break;
    }
}

由于某些原因,结果代码永远不等于result_OK,它每次都返回0。

发生这种情况是因为您没有实际发送数据。您必须调用
finish()
,才能返回活动并基本上关闭它。以下是此方法的文档:。只需在
onBackPressed()方法中的
setResult(appcompativity.RESULT\u OK,returnIntent)
之后调用此函数即可。希望有帮助

你能确认你的
onBackPressed()
方法正在被调用吗?它正在被调用,是的,并且你没有其他调用
setResult
(例如,
onPause()
onStop()
)来覆盖它吗?当OP调用
super.onBackPressed()
时,通常会导致调用
finish())
.True,是否尝试将
finish()
添加到方法?添加finish()有效。我以为它是内置在onBackPressed()的超级方法中的,但很高兴知道!谢谢,很高兴它成功了!您能接受这个答案吗?这样其他用户就知道您找到了解决方案?