没有在android中触发OnActivityResult

时间:2015-10-07 11:19:56

标签: android android-intent

我有 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();

如何解决这个问题?

3 个答案:

答案 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();