bonjour ,
je débute en programmation android ( j'ai un livre sur la programmation android ), je voudrai quelques précision sur la classe appWidget

je détaille un peu le widget que je veux créer

un widget qui affiche du texte et qui au bout de quelque minute ce met a jour pour afficher un autre texte

1)
la méthode onEnable(Context context){}
est lancé lors de la création du widget
donc je m'en servir pour initialiser mon widget
par exemple ajouter les textes a afficher a une ArrayList

mais j'ai l’impression que cette méthode n'est jamais exécuter
mon Arraylist n'est jamais instancier


2)
la méthode onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
}
j'ai lu que la méthode onUpdate() se lance lors de la création de celui-ci
et c'est ce que j'ai pu constater

mais il y a un point obscure ( pour moi )
la méthode Update est lance lors d'une mise a jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?xml version="1.0" encoding="utf-8"?>
    <appwidget-provider
         xmlns:android="http://schemas.android.com/apk/res/android"    	
          android:minWidth="296dip"
    	  android:minHeight="72dip"          
          android:updatePeriodMillis="10000"
          android:initialLayout="@layout/napply_widget_layout"          
          />
ici si j'ai bien compris la méthode onUpdate est lancé toute les 10000 milliseconde ( 10 s)
mais j'ai l’impression qu'elle n'est exécuter qu'une fois, au début


donc je voudrai savoir si ce que je viens d'énoncer comporte des erreurs ( j'espére ) car sinon je suis perdu

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
 
package azerty.uouou;
 
import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.view.View;
import android.os.Bundle;
import android.widget.RemoteViews;
 
public class NapplyWidget extends AppWidgetProvider {	
 
	String[] list ;
	static int cpt = 0;
	boolean test ;
 
/* cette méthode ne s'exécute jamais , c'est dommage */
 
	public void onEnable(Context context){
		list = new String[5];
		list[0]= "kkkkkkkk0";
		list[1]= "kkkkkkkk1";
		list[2]= "kkkkkkkk2";
		list[3]= "kkkkkkkk3";
		list[4]= "kkkkkkkk4";		
	}    
 
	 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
 
/*partie utilisé car la méthode onEnable ne marche pas ( pour compenser)*/
/****************************************************/
		 if(!test){		 
		 list = new String[5];
			list[0]= "kkkkkkkk0";
			list[1]= "kkkkkkkk1";
			list[2]= "kkkkkkkk2";
			list[3]= "kkkkkkkk3";
			list[4]= "kkkkkkkk4";
			test = true;
		}		 
/******************************************/
		 if(cpt >5){
			 cpt = 0;
		 }		 
 
		  final int N = appWidgetIds.length;
		  String s = list[cpt];
		  cpt++;
/* au cas ou plusieur appWidget son créer */
	      for (int i = 0; i < N; i++) {
	          int appWidgetId = appWidgetIds[i];
	          updateAppWidget(context, appWidgetManager, appWidgetId , s );
	      }
	  }
 
 
	  static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId , String s) {
/*on récupére la le widget et on le met a jour  */
	      String t = s;	    		  
	      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.napply_widget_layout);
	      views.setTextViewText(R.id.text1, t);
	      appWidgetManager.updateAppWidget(appWidgetId, views);
 
 
 
 
 
	  }
}











merci