Aller au contenu

Activity fille retourne des infos à sa mère une fois terminée


TeChn4K

Recommended Posts

J'ai longuement cherché comment est ce qu'une Activity pourrait retourner des infos à sa mère une fois celle-ci terminée.

Et j'ai enfin trouvé la solution ! j'ouvre donc un nouveau topic pour informer un max de gens qui ne connaissent pas l'astuce.

Trouvé ici : http://developer.android.com/guide/appendix/faq/commontasks.html#implementcallbacks (Returning a Result from a Screen)

Dans mon cas, j'ai une liste et un bouton pour ajouter une ligne. Le bouton me lance une nouvelle Activity qui contient un formulaire. Une fois le formulaire remplit et soumit, je quitte l'Activity fille et notifie la mère que les données sont enregistrées ou non grâce à cette technique

Le code de la doc :

"A window can return a result after it closes. This result will be passed back into the calling Activity's onActivityResult() method, which can supply an Intent containing arbitrary data, along with the request code passed to startActivityForResult(). Note that you must call the startActivityForResult() method that accepts a request code parameter to get this callback. The following code demonstrates opening a new screen and retrieving a result."

// Open the new screen.
public void onClick(View v){
   // Start the activity whose result we want to retrieve.  The
   // result will come back with request code GET_CODE.
   Intent intent = new Intent(this, com.example.app.ChooseYourBoxer.class);
   startActivityForResult(intent, CHOOSE_FIGHTER);
}

// Listen for results.
protected void onActivityResult(int requestCode, int resultCode, Intent data){
   // See which child activity is calling us back.
   switch (resultCode) {
       case CHOOSE_FIGHTER:
           // This is the standard resultCode that is sent back if the
           // activity crashed or didn't doesn't supply an explicit result.
           if (resultCode == RESULT_CANCELED){
               myMessageboxFunction("Fight cancelled");
           } 
           else {
               myFightFunction(data);
           }
       default:
           break;
   }
}

// Class SentResult
// Temporary screen to let the user choose something.
   private OnClickListener mLincolnListener = new OnClickListener(){
       public void onClick(View v) {
           Bundle stats = new Bundle();
           stats.putString("height","6\'4\""); 
           stats.putString("weight", "190 lbs");
           stats.putString("reach", "74\"");
           setResult(RESULT_OK, "Lincoln", stats);
           finish();
       }
   };

   private OnClickListener mWashingtonListener = new OnClickListener() {
       public void onClick(View v){
           Bundle stats = new Bundle();
           stats.putString("height","6\'2\""); 
           stats.putString("weight", "190 lbs");
           stats.putString("reach", "73\"");
           setResult(RESULT_OK, "Washington", Bundle);
           finish();
       }
   };

Si vous avez des questions n'hésitez pas ;)

Bye

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...