2013-10-16 2 views
0

Sur mon fragment que je fais:onActivityResult pas appelé fragment

Intent intent = new Intent(getActivity(), OtherActivity.class); 

    startActivityForResult(intent, RETURN_CODE); 

J'overriden onActivityResult sur mon activité

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    logger.debug("!!ACTIVITY!!!Returned from the activity!!!!"); 

    super.onActivityResult(requestCode, resultCode, data); 
} 

va de même pour le fragment! Le problème est que cette méthode n'est appelée que sur l'activité et non sur le fragment. Toute idée pourquoi?

+0

voir [this] (http://stackoverflow.com/questions/17085729/startactivityforresult-from-a-fragment-and-finishing-child-activity-doesnt-c) question. –

Répondre

0

il y a un problème avec le soutien v4, essayez d'utiliser onPostResume dans onActivityResult en cours d'utilisation Activité code suivant

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    returningWithResult = true; 
    this.mData = data; 
    mRequestCode = requestCode; 
    mResultCode = resultCode; 
} 

et onPostResume

@Override 
protected void onPostResume() { 
    // TODO Auto-generated method stub 
    super.onPostResume(); 
    if (returningWithResult) 
     <your fragment>.actionOnActivityResult(mRequestCode, mResultCode, mData); 

    returningWithResult = false; 
} 

également l'intention d'essayer de lancement pour résultat de l'activité que

public void launchIntent(Intent intent, int code) { 
    startActivityForResult(intent, code); 
} 

En Fragment u Je ne connais pas la raison, mais cela a fonctionné pour moi. J'espère que cela aide.

Questions connexes