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 :

Créer un bouton


Sujet :

Composants graphiques Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut Créer un bouton
    Bonjour,

    Voilà je viens de commencer le développement Android (après avoir appris les bases de Java), et j'aimerais essayer de faire un simple bouton sans utiliser le fichier xml pour créer l'interface.

    Pour l'instant 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
    package com.example.helloandroid;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class HelloAndroid extends Activity 
    {
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            TextView tv = new TextView(this);
            Bonjour politesse = new Bonjour("Formule de politesse : bonjour !");
            setContentView(tv);
            tv.setText("Salut le monde" + "\n" + politesse.getformule());
     
        }
    }
    Idéalement j'aimerais que le bouton affiche une popup contenant le texte politesse.getformule() .

    C'est une question de gros débutant, mais si quelqu'un pouvait m'aider...
    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Il te suffit, au même titre que ton TextView, de le créer, et de l'ajouter à ta vue principale.
    Vu que tu vas gérer deux composants (TextView + Bouton), il vaut mieux passer par un Conteneur pour contenir ces deux composants.
    Une fois que tu as pusher tes deux composants dans ce conteneur, tu ajoutes ce conteneur dans ton contentview de ton activité.
    Je n'ai volontairement pas mis de code pour que tu essayes par toi même. Si toutefois, tu n'y arrives toujours pas, n'hésites pas à repasser.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut
    C'est bon ! J'ai instancié un Button plus un LinearLayout et ajouté grâce à .addView tv et mon bouton :

    Voilà le cœur de ma fonction surchargé onCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            super.onCreate(savedInstanceState);
            TextView tv = new TextView(this);
            Bonjour politesse = new Bonjour("Formule de politesse : bonjour !");
            tv.setText("Salut le monde" + " " + tv.getText());
            bouton = new Button(getBaseContext());
            LinearLayout huhu = new LinearLayout(getBaseContext());
            huhu.addView(bouton);
            huhu.addView(tv);
            setContentView(huhu);
            tv.setText("Salut le monde" + "\n" + politesse.getformule());
    Si j'ai bien compris, getBaseContext() renvoie le "Context" ou vont s'afficher les éléments ?

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Lors de l'instanciation d'un nouvel objet, il te faut préciser qui sera le "responsable" de cet objet.
    Tu peux donc passer "this" (l'instance de ton activity) lors de la cration d'un objet graphique.

    Maintenant si tu souhaites afficher une information à l'écran (Toast) suite à un click sur ton bouton, je te laisse commencer, et nous dire si tu coinces.

  5. #5
    Membre chevronné

    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
    Par défaut
    L'ethique du code impose de bien nommer la methode C'est vrai que c'est pas l'objectif du thread mais ça derange lorsqu'on voit le nom des methodes mal nommé
    Pour un bon developpeur Java respectant la lisibilité, maintenance du code, il est vivement conseillé de bien nommé les variables, methodes et class.
    Tu aura mieux nommer : getFormule();

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut
    Bon, j'arrête pas de me masturber le cerveau depuis tout à l'heure mais j'ai du mal à comprendre comment associer une action à un bouton quand on appuie dessus...
    J'ai vu ici un exemple mais je ne comprend pas trop...
    Un petit peu d'aide ?

    Ah oui, j'ai aussi remanié un peu mon code pour qu'il soit plus clair :

    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
    package com.example.helloandroid;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class HelloAndroid extends Activity 
    {
     
    	private Button bouton;
    	private TextView tv;
    	private Toast test;
    	private Bonjour politesse;
    	private LinearLayout groupeDeVue;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            tv = new TextView(this);
            politesse = new Bonjour("Formule de politesse : bonjour !");
            tv.setText("Salut le monde" + " " + tv.getText());
            bouton = new Button(this);
            bouton.setMinimumWidth(100);
            bouton.setText("huhu");
            groupeDeVue = new LinearLayout(this);
            groupeDeVue.addView(bouton);
            groupeDeVue.addView(tv);
            groupeDeVue.setOrientation(1);
            setContentView(groupeDeVue);
            tv.setText("Salut le monde" + "\n" + politesse.getFormule());
        }
     
    }
    jahbromo => tu as entièrement raison, mais en vérité je ne comptais pas trop m'attarder sur le dev Android, donc je codais un peu à l'arrache.

    EDIT : C'est bon j'ai réussi !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            bouton.setOnClickListener(new View.OnClickListener() 
            {
                public void onClick(View v) 
                {
                    // Perform action on click
                    tv.seText("Test");
                }       
            });

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut
    Double poste, mais pour signaler que j'ai bien eu les réponses à ce que je voulais. je met le titre en résolu.

    Pour ceux qui le veulent, voici le code source complet, qui permet de visualiser comment mettre en œuvre des View, Button puis les grouper, les aligner et comment afficher un Toast :

    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
    package com.example.helloandroid;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class HelloAndroid extends Activity 
    {
     
    	private Button bouton;
    	private TextView tv;
    	private Toast test;
    	private LinearLayout groupeDeVue;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            Toast.makeText(this, "huhu", 10);
            super.onCreate(savedInstanceState);
            tv = new TextView(this);
            bouton = new Button(this);
            bouton.setMinimumWidth(100);
            bouton.setText("huhu");
            bouton.setOnClickListener(new View.OnClickListener() 
            {
                public void onClick(View v) 
                {
                    // Perform action on click
                	afficherNotif();
                }       
            });
     
            groupeDeVue = new LinearLayout(this);
            groupeDeVue.addView(bouton);
            groupeDeVue.addView(tv);
            groupeDeVue.setOrientation(1);
            setContentView(groupeDeVue);
            tv.setText("Salut le monde");
        }
     
        public void afficherNotif()
        {
        	test = Toast.makeText(this, "huhu", 10);
            test.show();
        }
     
    }
    Merci.
    ++

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Par défaut
    comment ajouter une crayon de couleur (noir ou rouge ...) à un bouton.(cad si je clique sur le boutton je peut dessine sur l"ecran avec la couleur choisie)

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

Discussions similaires

  1. [C#] Créer un bouton parcourir
    Par trotters213 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 24/01/2012, 19h22
  2. J'aimerais créer des boutons de commandes dynamiquement??
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/12/2005, 21h52
  3. [VBA-W] Créer un bouton de commande
    Par maketossss dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/11/2005, 18h07
  4. Réponses: 4
    Dernier message: 04/10/2005, 01h15
  5. Réponses: 2
    Dernier message: 26/09/2003, 17h49

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