2012-02-01 1 views
0

Je suis incapable de comprendre quand utiliser ces méthodesQuelle est la différence entre les 2 manières de démarrer une activité dans Android

Button b = (Button) findViewById(R.id.btn); 
     home.setOnClickListener (new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent i = new Intent(view.getContext(), Home.class); 
        startActivityForResult (i, 0); 

      } 
     }); 

et

Button b = (Button)findViewById(R.id.btn); 
    button.setOnClickListener (new View.OnClickListener() { 
     public void onClick (View view) { 
      Intent i = new Intent (this, Home.class); 
      startActivity (i); 

     } 
    }); 

et

mon autre doute est quand je démarre une nouvelle activité en utilisant la méthode onCreate (Bundle b), on m'appelle et je veux savoir si le b (bundle) fait référence à l'activité en cours ou l'activité précédente à celle qui est appelée.

Répondre

0

La méthode startActivity (Intent) est utilisée pour démarrer une nouvelle activité, qui sera placée en haut de la pile d'activités. Il prend un seul argument, un Intent, qui décrit l'activité à exécuter.

Parfois, vous voulez obtenir un résultat d'une activité quand elle se termine. Par exemple, vous pouvez démarrer une activité qui permet à l'utilisateur de sélectionner une personne dans une liste de contacts; quand il se termine, il renvoie la personne sélectionnée. Pour ce faire, vous appelez la version startActivityForResult (Intent, int) avec un deuxième paramètre entier identifiant l'appel. Le résultat reviendra via votre méthode onActivityResult (int, int, Intent). Lorsqu'une activité se termine, elle peut appeler setResult (int) pour renvoyer des données à son parent. Il doit toujours fournir un code de résultat, qui peut être les résultats standard RESULT_CANCELED, RESULT_OK ou toute valeur personnalisée commençant à RESULT_FIRST_USER. De plus, il peut éventuellement renvoyer un Intent contenant toutes les données supplémentaires qu'il souhaite. Toutes ces informations apparaissent de nouveau sur Activity.onActivityResult() du parent, avec l'identificateur d'entier fourni à l'origine.

Si une activité enfant échoue pour une raison quelconque (telle qu'une panne), l'activité parente recevra un résultat avec le code RESULT_CANCELED.

+0

Donc, vous devez utiliser startActivity(), si vous voulez seulement démarrer une nouvelle activité, mais si vous voulez obtenir un résultat (peut-être une valeur, ou une chaîne), vous devez utiliser startActivityForResult(). –

3

OnStartActivityforResult est utilisé lorsque nous avons besoin de données de secondActivity Like comme caméra, lorsque nous cliquons dessus et qu'il revient à la première méthode Activity onActivityForResult. Et startActivity est juste pour commencer une nouvelle activité dans Android ...

http://rahulonblog.blogspot.in/2010/05/android-startactivityforresult-example.html

+0

k que diriez-vous de répondre à ma deuxième question? – user493244

+0

Quand je démarre une nouvelle activité, on appelle OnCreate (Bundle b) et je veux savoir si b (Bundle) fait référence à une nouvelle activité ou ancienne activité – user493244

+0

http://stackoverflow.com/questions/2887368/can-you-please -explain-oncreate-and-bundles –

1

Si vous appelez startActivityForResult dans toute activité, l'activité actuelle qui appelle sera notifiée lorsque l'activité appelée est terminée ou back appuyez sur, et certaines informations seront renvoyées à l'activité d'appel.

La méthode onActivityResult de l'activité appelante est chargée de recevoir les informations envoyées par l'activité terminée.

Questions connexes