09.02.2017 Views

creez-des-applications-pour-android

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 Vers <strong>des</strong> <strong>applications</strong> plus complexes<br />

code de retour n’a été précisé). Enfin, intent est un intent qui contient éventuellement <strong>des</strong><br />

données.<br />

[[information]] | Par défaut, le code renvoyé par une activité est Activity.RESULT_CANCELED<br />

de façon que, si l’utilisateur utilise le bouton ||Retour|| avant que l’activité ait fini de s’exécuter,<br />

vous puissiez savoir que le résultat fourni ne sera pas adapté à vos besoins.<br />

Dans la seconde activité, vous pouvez définir un résultat avec la méthode void setResult(int<br />

resultCode, Intent data), ces paramètres étant identiques à ceux décrits ci-<strong>des</strong>sus.<br />

Ainsi, l’attribut requestCode de void startActivityForResult(Intent intent, int<br />

requestCode) sera similaire au requestCode que nous fournira la méthode de callback void<br />

onActivityResult(int requestCode, int resultCode, Intent data), de manière à<br />

pouvoir identifier quel intent est à l’origine de ce retour.<br />

Le code de ce nouvel exemple sera presque similaire à celui de l’exemple précédent, sauf que cette<br />

fois la seconde activité proposera à l’utilisateur de cliquer sur deux boutons. Cliquer sur un de ces<br />

boutons retournera à l’activité précédente en lui indiquant lequel <strong>des</strong> deux boutons a été pressé.<br />

Ainsi, MainActivity ressemble désormais à :<br />

package sdz.chapitreTrois.intent.example;<br />

import <strong>android</strong>.annotation.SuppressLint;<br />

import <strong>android</strong>.app.Activity;<br />

import <strong>android</strong>.content.Intent;<br />

import <strong>android</strong>.os.Bundle;<br />

import <strong>android</strong>.view.View;<br />

import <strong>android</strong>.widget.Button;<br />

import <strong>android</strong>.widget.Toast;<br />

public class MainActivity extends Activity {<br />

private Button mPasserelle = null ;<br />

// L'identifiant de notre requête<br />

public final static int CHOOSE_BUTTON_REQUEST = 0 ;<br />

// L'identifiant de la chaîne de caractères qui contient le résultat de l'intent<br />

public final static String BUTTONS = "sdz.chapitreTrois.intent.example.Boutons" ;<br />

@Override<br />

public void onCreate(Bundle savedInstanceState) {<br />

super.onCreate(savedInstanceState);<br />

setContentView(R.layout.activity_main);<br />

mPasserelle = (Button) findViewById(R.id.passerelle);<br />

mPasserelle.setOnClickListener(new View.OnClickListener() {<br />

@Override<br />

public void onClick(View v) {<br />

Intent secondeActivite = new Intent(MainActivity.this, IntentExample.class);<br />

// On associe l'identifiant à notre intent<br />

startActivityForResult(secondeActivite, CHOOSE_BUTTON_REQUEST);<br />

}<br />

260

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!