[英]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.