我看不出我的代码有什么问题:
我有一个活动(让我们称之为;A)以这种方式开始另一个活动(B):
在一个:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
gridOpciones.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int pos, long
intent = new Intent(ReproductorActivity.this, B.class);
startActivityForResult(intent, B.RESULT_PATH);
}
}
我有一个 OnLongItemClickListener 用这个 onItemLongClick 分配给 B' listview
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
ctx.onLongClick(arg2);
return false;
}
ctx 是 B 类中 OnLongItemClickListener 和 onLongClick 的 B 对象所有者:
public void onLongClick(int arg2) {
Intent returnIntent = new Intent();
returnIntent.putExtra("PATH", getItem(arg2));
setResult(Activity.RESULT_OK, returnIntent);
finish();
}
而且我在 A 中也有一个回调函数,如下所示:
@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 但回来时什么也不做......
我已经对其进行了调试,当我单击 A 类中的网格元素时,它的 OnItemClickListeneronItemClick
被调用,但是在此之后,AonActivityResult
被调用,然后出现 B 活动。我长按 B 的一个项目,它执行onLongClick(int)
但没有回调A.onActivityResult
...
我不知道会发生什么,有什么想法吗?任何线索?
谢谢。
编辑:调用 OnActivityResult 时,requestCode == B.RESULT_PATH