繁体   English   中英

Android onActivityResult() 未触发

[英]Android onActivityResult() not firing

我知道有很多类似于这个问题的问题,但是那里提到的解决方案都没有对我有用,我不太确定为什么。

我有以下设置:

MainActivity.java启动:

Button b = findViewById(R.id.btn_b);
b.setOnClickListener(new View.onClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, Activity2.class);
        startActivityForResult(intent, 0);
    }
});

Activity2.java返回值:

@Override
public onBackPressed() {
    System.out.println("Here"); // this can be seen in the logcat
    Intent retIntent = new Intent();
    // putExtra some return values
    setResult(RESULT_OK, retIntent);
    finish();
}

MainActivity.java接收数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    System.out.println("Returning"); // this doesn't fire at all

    if (data != null) { // I know there will be no other activities, and I want to act on whatever result I get
        // extract and do something with data
    }
}

我真的不明白这里发生了什么。 有人可以帮忙解释一下,以及如何解决吗? 如果需要,我很乐意提供更多信息。

感谢您的时间。

MainActivity.java中的这一行更改为

startActivityForResult(intent, 1);

然后在onBackPressed()方法中像这样调用方法setResult

setResult(RESULT_OK);

然后在onActivityResult方法中写下这个条件。

if (resultCode == Activity.RESULT_OK) {//place your logic here}

请让我知道这是否对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM