我在代码中看不出有什么问题:
我有一个活动(让我们称之为; A)以这种方式开始另一个活动(B):
在A:
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作为OnLongItemClickListener和onLong的B对象所有者在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类中的网格元素时,它的OnItemClickListener的onItemClick
被调用,但在此之后,调用了A的onActivityResult
,之后它被调用了出现B活动。我在B的项目中长按并执行onLongClick(int)
,但A.onActivityResult
中没有回调...
我不知道会发生什么,任何想法?任何线索?
感谢。
编辑:调用OnActivityResult时,requestCode == B.RESULT_PATH
答案 0 :(得分:0)
在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....
}
}
}