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

Composants graphiques Android Discussion :

Changer le backgroud d'un bouton lors d'un click


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Points : 47
    Points
    47
    Par défaut Changer le backgroud d'un bouton lors d'un click
    Bonjour,
    Je voudrais changer le background d'un bouton dans un widget quand je clicque au dessus.
    voici mon code:
    dans widget.xml -- le layout d'un widget
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Button android:id="@+id/widget_button"
    	android:layout_height="wrap_content"	
    	android:layout_width="wrap_content"
    	android:layout_gravity="center_horizontal|center"
    	android:layout_marginTop="5dip"
    	android:padding="10dip"
    	android:soundEffectsEnabled="true"
    	android:background="@drawable/close2"/>
    widget.xml est utilisé dans widget_provider.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="146dip"
    android:minHeight="72dip"
    android:updatePeriodMillis="10000"
    android:initialLayout="@layout/widget"
    />
    dans la méthode onUpdate du widget.java, je lance une activity - updateCard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    		RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
    		Intent update = new Intent(context, UpdateCard.class);
    		update.setAction(ACTION_WIDGET_CLICK);
     
    		PendingIntent actionPendingIntent = PendingIntent.getActivity(context, 0, update, 0);
     
    		remoteViews.setOnClickPendingIntent(R.id.widget_button, actionPendingIntent);
     
    		appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
    	}
    enfin dans la méthode onCreate de l'activity UpdateCard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
            setContentView(R.layout.waitprogress);
            // Log In
            loginDialog = new LogInDialog(this);
     
            okButton = (Button)loginDialog.findViewById(R.id.login_ok_bt);
            okButton.setOnClickListener(this);
            loginDialog.show();
    	}
    et dans onClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Button wallet = (Button) this.findViewById(R.id.widget_button);
    wallet.setBackgroundResource(R.drawable.open2);
    Mais ça n'a pas marché, erreur vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wallet.setBackgroundResource(R.drawable.open2);
    quelqu'un a une idée?

    merci

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    j'ai une petite idée:
    dans OnClick() de l'activity updateCard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button wallet = (Button) this.findViewById(R.id.widget_button);
    peut être incorrect?
    parce que widget_button n'est pas dans le layout de updateCard.. (il n'y a rien dans le layout de updateCard)

    mais je ne sais pas comment le corriger..

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    le problème est plutôt "comment changer l'image d'un widget?"

    quand je clique sur l'image de widget, il change l'image..

    ça doit être dans le AppWidgetProvider? OnRecieve?
    quel qu'un a une idée?
    merci

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Citation Envoyé par lansher1985 Voir le message
    le problème est plutôt "comment changer l'image d'un widget?"
    i
    Pour resoudre ton problème voici les etapes à suivres

    1. Creer un fichier de nom custom_button.xml ( un nom quelconque). Ce fichier xml sera stocké dans res/drawable .

    Voici un exemple de contenu :

    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
    >
    	<item
    		android:state_focused="true"
    		android:state_pressed="false"
    		android:drawable="@drawable/button_pressed" />
    	<item
    		android:state_focused="true"
    		android:state_pressed="true"
    		android:drawable="@drawable/button2" />
    	<item
    		android:state_focused="false"
    		android:state_pressed="true"
     
    		android:drawable="@drawable/button3" />
     
    	<item
     
    		android:drawable="@drawable/button_default" />
    </selector>


    2. Ensuite voici ce que doit ressembler ton code layout.

    Dans un layout quelqconque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <ImageButton
    				android:layout_width="wrap_content"
    				android:src="@drawable/custom_button"
    				android:id="@+id/dialogue_website"
    				android:background="@null"
    				android:layout_height="wrap_content"
    			></ImageButton>

    Ainsi ce bouton changera de couleur selon qu'il est pressé, cliqué ou autre.
    Par exemple quand le bouton est cliqué : sa couleur sera button_pressed.
    Par defaut il prend la forme de button_default.

    Il faut signaler que les button_pressed, button_default sont des images à placer dans res/drawable.

    3. Esperons t'avoir aidé.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/05/2014, 18h16
  2. changer le background d'un bouton lors du survol en wpf
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 17/11/2013, 22h49
  3. Réponses: 1
    Dernier message: 20/04/2011, 09h23
  4. changer couleur d un autre div lors d un click
    Par romocop dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/10/2010, 14h35
  5. Changer la couleur d'un bouton lors du survol.
    Par DetoX dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 15/05/2009, 20h49

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