09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.4 Créer un AppWidget<br />

pendingIntent) de RemoteViews avec viewId l’identifiant du bouton et pendingIntent le<br />

PendingIntent qui contient l’Intent qui sera exécuté en cas de clic.<br />

[[attention]] | Détail important : <strong>pour</strong> ajouter plusieurs évènements de ce type, il faut différencier<br />

chaque Intent en leur ajoutant un champ Données différent. Par exemple, j’ai rajouté <strong>des</strong> données<br />

de cette manière à mes intents : intent.setData(Uri.withAppendedPath(Uri.parse("WIDGET://wid<br />

String.valueOf(Identifiant_de_cette_vue))). Ainsi, j’obtiens <strong>des</strong> données différentes<br />

<strong>pour</strong> chaque intent, même si ces données ne veulent rien dire.<br />

Afin de faire en sorte qu’un intent lance la mise à jour de l’AppWidget, on lui mettra comme action<br />

AppWidgetManager.ACTION_APPWIDGET_UPDATE et comme extra les identifiants <strong>des</strong> widgets<br />

à mettre à jour ; l’identifiant de cet extra sera AppWidgetManager.EXTRA_APPWIDGET_ID :<br />

intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);<br />

intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);<br />

Comme AppWidgetProvider dérive de BroadcastReceiver, vous pouvez implémenter void<br />

onReceive(Context context, Intent intent) <strong>pour</strong> gérer chaque intent qui lance ce receiver.<br />

5.4.5.3 Ma solution<br />

Tout d’abord je déclare mon layout :<br />

<br />

<br />

<br />

<br />

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

Saved successfully!

Ooh no, something went wrong!