Bonjour à tous,
tout d'abord merci a ce super forum et a ses participants, j'en ai fait ma bible ces derniers temps
Etant noob en dev android, je me suis créé une petite appli pour me connecter à mon serveur. Ca marche plutot bien. Pour ameliorer mon appli, je voulais rajouter une appWidget dans le but d'envoyer des commandes post à mon serveur. Le top serait d'avoir plusieurs widget sur le bureau ayant chacun leurs infos à envoyer. Pour le widget, pas de soucis, pour la preferenceActivity, pas de soucis, mais la ou je coince, c'est sur le onReceive du widget. J'ai bien l'appWidgetId qui correspond au widget clické, mais je ne sais pas du tout comment récupérer les autres infos (entrées dans la prefActivity) de ce widget.
Dans mon prefActivity, j'entre :
1- text : le nom du widget (pour affichage sur le bureau)
2- param1
3- param2

Comment puis-je récuperer param1 et param2 dans le onReceive pour executer ma commande de connection au serveur ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
public class Widget extends AppWidgetProvider {
 
	public static final String ACTION_LANCER_APPLICATION = "com.formation.appwidget.LANCER_APPLICATION";
 
	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {	
		super.onUpdate(context, appWidgetManager, appWidgetIds);
		Update(context, appWidgetManager, appWidgetIds);
	}
 
	@Override
	public void onReceive(Context context , Intent intent){
		super.onReceive(context, intent);
		Log.i("test", " intent.GetAction = " + intent.getAction());
		if(intent.getAction().equals(ACTION_LANCER_APPLICATION)){
			mesActions(context);
		}
	}
 
	public static void Update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
		SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
		String text = settings.getString("text", "Hello");
 
		String _param1 = settings.getString("param1", "nul");
		Log.i("test", "_param1 = " +_param1);
 
		for(int i=0; i<appWidgetIds.length;i++){
			RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.main);
			views.setTextViewText(R.id.text, text);
 
			Intent intent = new Intent(context, Widget.class);
			intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
			intent.setAction(ACTION_LANCER_APPLICATION);
			//on lie l'intent a l'action
			PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
			views.setOnClickPendingIntent(R.id.text, pendingIntent);
			appWidgetManager.updateAppWidget(appWidgetIds[i],views);
 
		}
 
	}
 
	private void mesActions(Context context) {
		Log.i("test", "onReceive action_lancer_appli");	
	}	
}