Bonjour à tous,
Je développe actuellement une application où entre autre l'utilisateur entre la date à laquelle il arrête de fumer et en fonction du jours/heure/minute actuel, celà lui renvoit des informations tels que l'argent économisé etc..
J'ai déja implémenter tous celà au sein d'une activité et ça marche très bien, maintenant je désire faire pareil avec un widget mais c'est mon tout premier widget et j'avoue ne pas trop m'en sortir.
Je ne sais pas très bien où placer mon code entre onEnabled(), onUpdate etc, alors pour le moment j'ai ceci :
Ici je souhaite donc récupéré la date, heure, minute actuelle et la date à laquelle l'utilisateur arrête de fumer que j'ai stocké dans les préfécences (déja apperement " getDefaultSharedPreferences(this); " ne passe pas..)
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 public class elloWorldWidgetActivity extends AppWidgetProvider { TextView txtDateStopFumer; TextView resultatJoursSansFumer; TextView resultatCigNonFume; TextView resultatEconomie; TextView resultatTempsGagne; // get the current date final Calendar c = Calendar.getInstance(); int AjdAnnee = c.get(Calendar.YEAR); int AjdMois = c.get(Calendar.MONTH); int AjdJour = c.get(Calendar.DAY_OF_MONTH); int AjdHeure = c.get(Calendar.HOUR_OF_DAY); double AjdMinute = c.get(Calendar.MINUTE); SharedPreferences Preferences = PreferenceManager.getDefaultSharedPreferences(this); String StopAnnee_String = Preferences.getString("StopAnnee", "0"); String StopMois_String = Preferences.getString("StopMois", "0"); String StopJour_String = Preferences.getString("StopJour", "0"); int stopAnnee = Integer.parseInt(StopAnnee_String); int stopMois = Integer.parseInt(StopMois_String); int stopJour = Integer.parseInt(StopJour_String);
Ensuite dans onUpdate() j'ai mis ceci :
Normalement avec ceci, dans une simple activé celà marche très bien mais je craind qu'en l'occurence pour mon widget, tous ne soient pas codé dans les bonnes méthodes, si quelqu'un peut m'éclairer merci.
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 @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { AjdHeure = AjdHeure +1; int NbrJourDebut = ((stopAnnee*365)+((stopMois+1)*30)+stopJour); int NbrJourAjd = ((AjdAnnee*365)+((AjdMois+1)*30)+AjdJour); int NbrTotalJoursSansFumer = NbrJourAjd - NbrJourDebut; double NbrTotalJoursEtHeuresSansFumer = NbrTotalJoursSansFumer+((double)AjdHeure/24)+(((double)AjdMinute/60)/24); String NbrTotalJoursSansFumer_string = NumberFormat.getInstance().format(NbrTotalJoursEtHeuresSansFumer); RemoteViews updateViews = new RemoteViews(context.getPackageName(),R.layout.main_widget); updateViews.setTextColor(R.id.ResultJoursSansFumer, 0xFF000000); updateViews.setTextViewText(R.id.ResultJoursSansFumer, NbrTotalJoursSansFumer_string); ComponentName thisWidget = new ComponentName(context, elloWorldWidgetActivity.class); appWidgetManager.updateAppWidget(thisWidget, updateViews); }
Partager