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 :

Problème avec setOnClickListener


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut Problème avec setOnClickListener
    Bonjour, tout le monde (et bonne année)
    je suis en train de développer une application android et j'ai lu pas mal de tutoriel ces derniers jours.
    Mon problème est le suivant.
    J'ai différents bouton que je récupère avec la méthode findViewById et ensuite sur chaque bouton je mets un setOnClickListener, mais seul le premier de mon code est pris en compte, ce qui est confirmé lorsque je change de place mes setOnClickListener.
    Voici mon code :
    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
    102
    103
    package com.Ubudroid;
     
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
     
    import java.io.OutputStreamWriter;
    import java.net.Socket;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
     
     
     
     
    public class UbudroidActivity extends Activity {
        //variables
    	Button buttonFichier;
    	Button buttonBanshee;
    	Button buttonServeur;
    	Button buttonApplication;
    	ListView listFile;
     
     
    	/** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);     
            setContentView(R.layout.main);
     
            try{
            	final Socket client=new Socket("192.168.0.10",1532);
            	final BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
    			final PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));
            //	initialisation des boutons
     
            	buttonApplication = (Button) findViewById(R.id.buttonAppli);
            	buttonFichier = (Button) findViewById(R.id.buttonFichier);
            	buttonBanshee = (Button) findViewById(R.id.buttonBanshee);
            	listFile = (ListView) findViewById(R.id.listFile);
     
            //	évènements des variables
     
            	final  UbudroidActivity context=this;
     
     
     
            	buttonApplication.setOnClickListener(new OnClickListener(){
     
    			public void onClick(View v) {
    				pw.println("application cliqué");
    				pw.flush();
    				setContentView(R.layout.applications);
    			}
     
            	});
     
            	buttonBanshee.setOnClickListener(new OnClickListener(){
     
    				public void onClick(View v) {
    					pw.println("banshee cliqué");
    					pw.flush();
    				}
     
            	});
     
            	buttonFichier.setOnClickListener(new OnClickListener(){
     
            		public void onClick(View v) {
     
            				pw.println("gestionnaire de fichier cliqué");
            				pw.flush();
     
            		}
     
            	});
            	listFile.setOnClickListener(new OnClickListener(){
     
            		public void onClick(View v) {
     
     
            		}
     
            	});
     
     
     
     
            	}catch(Exception e){
     
        	}
     
        }
    }
    Pouvez-vous m'aider ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    C'est curieux que ça ne fonctionne pas comme ça, mais je n'ai pas regardé dans le détail.
    Enfin la méthode la plus pratique est d'implémenter OnClickListener dans la Class.
    Il y aura donc qu'une seul méthode onClick pour tous les boutons, il faudra ensuite déterminer de quel bouton viens l'appel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class UbudroidActivity extends Activity implements OnClickListener {
    // [...]
    buttonApplication.setOnClickListener(this);
    buttonFichier.setOnClickListener(this);
    // [...]
    public void onClick(View v) {
    	if (v.equals(buttonApplication)) {
    	// cas du bouton buttonApplication
    	}else if (v.equals(buttonFichier)) {
    	// cas du bouton buttonFichier
    	}
    }

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    J'ai relu quelque cours et j'ai vu qu'il fallait en fait faire un layout par activiy.
    Donc j'ai utilisé la méthode startActivity(Intent intent);

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Je ne vois pas le rapport
    Mais tans mieux si tu as trouvé

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Je pensais que utiliser la méthode setContentview suffisait à changer la boutons à l'écran mais il n'en n'est rien.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Ah... ok
    setContentView, charge le layout xml, en ce qui concerne les boutons, il faut sans doute assigner les variables ensuite avec findViewById.
    Mais de toute manière, la découpe par Activity est un passage obligé pour faire de l'Android.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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