IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Accès à la classe main


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Accès à la classe main
    Bonjour,

    Je suis nouveau dans le monde Android et encore plus en Java. Certainement cette question va vous paraitre assez idiote mais bon comme je suis débutant je me permets de vous la poser quand-même.

    Je commence à développer mon premier widget et donc j'ai créé pour cela deux classes :

    1 - Main extends PreferenceActivity
    2 - Widget extends AppWidgetProvider

    (je suivi un tuto pour le faire)

    la classe main a une propriété int mAppWidgetId qui (si j'ai bien compris) garde l'identifiant de l'appli

    Le problème est que lors de l'update du widget on passe un tableau avec tous les instances du widget et donc il met à jours tous les widgets au lieu de le faire avec un seul.

    Voici les classes :

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
     
    public class Widget  extends AppWidgetProvider{
     
    	@Override
    	public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
     
    		Update(context, appWidgetManager, appWidgetIds);
    		super.onUpdate(context, appWidgetManager, appWidgetIds);
    	}
     
    	public static void Update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
     
    		SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
    		String ville = settings.getString("ville", "Ville...");
    		String temperature = null;
     
     
    		try{
     
    			// Recupere les infos du net
    			URL myURL = new URL("http://www.google.com/ig/api?weather=" + ville);
     
    			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
    	    	DocumentBuilder constructeur = fabrique.newDocumentBuilder();
    	    	Document document = constructeur.parse(myURL.openStream());
     
    	    	Element racine = document.getDocumentElement();
     
    	    	NodeList liste = racine.getElementsByTagName("current_conditions");
     
    	    	NodeList n2 = liste.item(0).getChildNodes();
     
    			temperature = ((Element) n2.item(2)).getAttribute("data");
     
    		} catch (Exception e) {
     
    			Log.e("Widget.java (56)",e.getLocalizedMessage());
     
    		}
     
     
     
     
    		for(int i=0; i<appWidgetIds.length; i++){
     
    			RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
    			views.setTextViewText(R.id.ville, ville);
    			views.setTextViewText(R.id.temperature, temperature);
     
    			appWidgetManager.updateAppWidget(appWidgetIds[i], views);
    		}
     
     
    	}
     
     
     
    }
     
     
     
     
     
     
    public class Main extends PreferenceActivity {
     
    	int mAppWidgetId;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            addPreferencesFromResource(R.xml.preferences);
     
            setResult(RESULT_CANCELED);
     
            Bundle extras = getIntent().getExtras();
     
            if(extras != null)
            	mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); 
     
            if(mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID)
            	finish();
     
            Intent resultvalue = new Intent();
            resultvalue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
     
     
            setResult(RESULT_OK, resultvalue);
     
        }
     
        @Override
        protected void onDestroy() {
     
        	Widget.Update(this, AppWidgetManager.getInstance(this), new int[] {mAppWidgetId});
     
        	super.onDestroy();
        }
    }
    J'aimerais pouvoir faire au lieu de la boucle dans widget.update quelque chose dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);
    views.setTextViewText(R.id.ville, ville);
    views.setTextViewText(R.id.temperature, temperature);
     
    appWidgetManager.updateAppWidget(Main.mAppWidgetId, views);
    Est cela possible ?

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Personne sait ???!!!

Discussions similaires

  1. [VBA] [CLASS] accès à une classe d'une autre base
    Par gsilber dans le forum Contribuez
    Réponses: 5
    Dernier message: 29/02/2016, 12h38
  2. Mettre à jour un JPanel depuis la classe main
    Par Zorgloub dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 03/04/2006, 11h14
  3. [JAR]Création de Jar -> trouve pas la classe main
    Par Zapan dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/01/2006, 11h17
  4. [ERREUR] Ne retrouve pas la classe main
    Par Anathema dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 06/07/2005, 16h16
  5. [Visual C++6] Accès à une classe d'une dll
    Par charliejo dans le forum MFC
    Réponses: 12
    Dernier message: 09/03/2005, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo