我有 X,Z活动和Y类。 Y是活动X的视图,并且从X到Z调用结果的活动。在X中不会转到onActivityResult
。
Activity X:
SetContentView(Y);
和
Intent i=new Intent(x.this,z.class);
startActivityforResult(i,100);
onActivityResult
方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100)
{
Log.e("Message from Z","Message");
}
}
活动Z:
setResult(RESULT_OK, (new Intent()).setAction("close"));
this.finish();
如何解决这个问题?
答案 0 :(得分:0)
像这样使用setResult():
Intent i = getIntent(); //gets the intent that called this intent
setResult(Activity.RESULT_OK, i);
将您的意图添加为setResult()
的一个参数答案 1 :(得分:0)
您正在创建新意图;你不需要这样做。
这应该有效:
setResult(Activity.RESULT_OK);
finish();
另外,建议不要使用硬编码请求代码(在您的情况下为100)。声明private static final int
变量并在启动结果活动(startActivityforResult
)时以及在onActivityResult
方法上接受结果时使用它。
答案 2 :(得分:0)
试试这个:
在onActivityResult()
中更新代码
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100)
{
if(resultCode == RESULT_OK) {
Log.e("Message from Z","Message");
}
}
}
活动Z:
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();