Aller au contenu

Bouton simple Widget


verbalinsurection

Recommended Posts

Bonjour !

Bon voilà, question de gros débutant mais je souhaiterais, par exemple, avoir un bouton dans mon widget, on clique dessus, ça change l'image du bouton...

Simple non? bah pas pour moi...

Alors ok pour le changement d'image, je superpose 2 ImageView et je joue sur la Visibility, mais le coup du click et le gérer je n'y arrive pas, une 'tite explication ?

Merci à vous (sachant que je n'ai pas d'activity)

Lien vers le commentaire
Partager sur d’autres sites

bah tu vas etre obligé d afficher l image en fonction d'une donnée....

if bidule

image1

sinon

image2

reste plus qu'à définir bidule....

Exemple : si l image représente le wifi allumé ou eteinds : bidule correspond à l état du wifi.

pour le click t es obligé d'assigner une pendingintent à ton image, qui va devoir lancer un service ou un broadcastreceiver.

Pour la part : le widget a une mthode statique UpdateWidget(Context c)...que j appelle dans le onUpdate du widget...

et du coup je peux aussi l appeler dans le broadcastreceiver ou dans le service....

Lien vers le commentaire
Partager sur d’autres sites

heu...

bon, aller, dans un premier temps je te remercie même si à première vu j'ai rien pipé (je dev en c++, pas trop java, et je suis puceau sur android).

Donc merci... mais à mon avis... je reviendrais :lol:

Non parce que j'avais trouvé le pendingintent mais j'ai pas réussi à le mettre en place correctement...

Lien vers le commentaire
Partager sur d’autres sites

Quand tu met a jour ton remoteview:

      Intent intent = new Intent();
       intent.setAction(GPS_BUTTON);

       PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
       updateViews.setOnClickPendingIntent(R.id.ImageGpsBack, pendingIntent);

la definition de GPS_BUTTON c'est: (bien sur tu changes!)

private static final String GPS_BUTTON = 
       new String("com.levelup.beautifulwidgets.action.GPS_BUTTON"); 

ensuite tout simplement dans ton widget, tu implementes OnReceive:


   @Override 
   public void onReceive(Context context, Intent intent) { 
       final String action = intent.getAction(); 
       if (GPS_BUTTON.equals(action)) {
           Log.d("TOTO", "Tu viens de me toucher le GPS ou je reve ?? :-O");
       }
       else {
           super.onReceive(context, intent); 
       } 

Attention a ne pas faire un truc long dans un BroadcastReceiver comme OnReceive, sinon tu vas avoir des Force Close. Si ça doit etre long comme traitement, lance un service.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...