Android startActivityForResult外部行为

Android startActivityForResult外部行为,android,Android,我看不出我的代码中有什么错误: 我有一个活动(我们称之为A)以这种方式开始另一个活动(B): 以一种方式: 我还有一个回调函数,类似这样: @Override protected void onActivityResult(int requestCode, int resultCode, final Intent data){ if (requestCode == B.RESULT_PATH) { if (resultCode == RESU

我看不出我的代码中有什么错误:

我有一个活动(我们称之为A)以这种方式开始另一个活动(B):

以一种方式:

我还有一个回调函数,类似这样:

@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data){               
    if (requestCode == B.RESULT_PATH) {
        if (resultCode == RESULT_OK) {
        ... get data, do stuff....                   
        }
    }
}
所以,我的问题是它不起作用。它显示B,但当B回来时什么也不做

我已经调试了它,当我在类A中单击网格元素时,它的OnItemClickListener的
onItemClick
被调用,但在此之后,A的
onActivityResult
被调用,在此之后它显示为B活动。我长按B中的一项,它会执行
onLongClick(int)
,但
a中没有回调

我不知道发生了什么,知道吗?有线索吗

谢谢


编辑:调用OnActivityResult时,requestCode==B.RESULT_PATH

在OnActivityResult中,第一个if语句中应该有requestCode而不是resultCode:

@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data){               
    if (requestCode == FileSelector.RESULT_PATH) {
        if (resultCode == RESULT_OK) {
        ... get data, do stuff....                   
        }
    }
}

那么,又是什么问题呢?我想启动B并在a的OnActivityResult中从B获得响应,但是在我长时间单击B中的项之前调用了a.OnActivityResult…。正确,修复了这个问题,问题是我只在B出现之前到达OnActivityResult(更具体地说,当我调试时,在它结束其onCreate之前我已经看到)。
public void onLongClick(int arg2) {
    Intent returnIntent = new Intent();
    returnIntent.putExtra("PATH", getItem(arg2));
    setResult(Activity.RESULT_OK, returnIntent);
    finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data){               
    if (requestCode == B.RESULT_PATH) {
        if (resultCode == RESULT_OK) {
        ... get data, do stuff....                   
        }
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data){               
    if (requestCode == FileSelector.RESULT_PATH) {
        if (resultCode == RESULT_OK) {
        ... get data, do stuff....                   
        }
    }
}