在android应用中使用了Fragment,当在Fragment当中使用startActivityForResult的时候,在Fragment当中使用的onActivityResult并没有被执行,这是由于在setresult()方法后,Fragment的onActivityResult被Activity的onActivityResult给屏蔽掉了,所以解决的思路就是:在Activity当中首先新建一个此Fragment对象,重写onActivityResult方法在此方法中调用此Fragment的onActivityResult.
Activity当中的onActivityResult方法:
OrderFragment or=new OrderFragment();
@Override
protected void onActivityResult(int arg0, int arg1, Intent arg2) {
// TODO Auto-generated method stub
super.onActivityResult(arg0, arg1, arg2);
or.onActivityResult(arg0, arg1, arg2);
}
Fragment当中继承OnActivityResult方法,在此方法中实现想要的结果:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(0==resultCode){
isfirst=true;
}
super.onActivityResult(requestCode, resultCode, data);
}
本文介绍了在Android应用的Fragment中正确使用startActivityForResult的方法。由于Activity的onActivityResult可能覆盖Fragment中的同名方法,导致后者无法正常工作。文章提供了解决方案,即在Activity中为Fragment重写onActivityResult,并在其中调用Fragment的对应方法。
1041

被折叠的 条评论
为什么被折叠?



