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 :

Clique bouton nécessaire


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Par défaut Clique bouton nécessaire
    Bonjour à tous,

    J'ai une activité avec plusieurs champs et un bouton "signature", le clique sur le bouton entraîne l'ouverture d'une fenêtre permettant à l'utilisateur d'entrer sa signature avec son doigt.
    Il y a aussi 3 boutons, précédent, suivant et enregistrer.
    Je souhaiterais faire en sorte que si l'utilisateur clique sur le bouton enregistrer sans avoir cliquer sur le bouton signature, il ne puisse pas enregistrer et passer à l'activité suivante et si il a déjà cliquer sur signature, le bouton est désactivé, il ne peut cliquer sur le bouton qu'une seule fois.
    J'ai fait plusieurs essai mais aucun ne marche :

    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
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    public class EcatalogueActivity5 extends Activity implements View.OnClickListener {
     
        public Button btnEnregistrer, btnPrecedent, signature;
        public TextView dateCurrent;
        private int year, month, day;
        public RadioButton ancien_site, par_pigiste, par_client;
        public EditText url_site, nom_qualite, commentaires;
        public RadioGroup contenu_site;
     
        public static final int SIGNATURE_ACTIVITY = 1;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_ecatalogue5);
     
            btnEnregistrer = (Button) findViewById(R.id.btnEnregistrer);
            btnEnregistrer.setOnClickListener(this);
            btnPrecedent = (Button) findViewById(R.id.btnPrecedent);
            signature = (Button) findViewById(R.id.signature);
            ancien_site = (RadioButton) findViewById(R.id.ancien_site);
            par_pigiste = (RadioButton) findViewById(R.id.par_pigiste);
            par_client = (RadioButton) findViewById(R.id.par_client);
            contenu_site = (RadioGroup) findViewById(R.id.contenu_site);
            url_site = (EditText) findViewById(R.id.url_site);
            commentaires = (EditText) findViewById(R.id.commentaires);
            nom_qualite = (EditText) findViewById(R.id.nom_qualite);
            setCurrentDateOnView();
     
            ancien_site.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    if (((RadioButton) v).isChecked()) {
                        url_site.setFocusable(true);
                        url_site.setFocusableInTouchMode(true);
                        url_site.setCursorVisible(true);
                    } else {
                        url_site.setFocusable(false);
                        url_site.setFocusableInTouchMode(false);
                        url_site.setCursorVisible(false);
                    }
                }
            });
     
            par_pigiste.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    if (((RadioButton) v).isChecked()) {
                        url_site.setFocusable(false);
                        url_site.setFocusableInTouchMode(false);
                        url_site.setCursorVisible(false);
                    }
                }
            });
     
            par_client.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    if (((RadioButton) v).isChecked()) {
                        url_site.setFocusable(false);
                        url_site.setFocusableInTouchMode(false);
                        url_site.setCursorVisible(false);
                    }
                }
            });
     
            signature.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(EcatalogueActivity5.this, CaptureSignature.class);
                    startActivity(intent);
                    // test signature
                    signature.setEnabled(false);
                    signature.isActivated();
                }
            });
     
            //    Bouton "Précédent", retour à l'activité précédente
            btnPrecedent.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    onBackPressed();
                }
            });
        }
     
        //    Affichage de la date actuelle
        public void setCurrentDateOnView() {
     
            dateCurrent = (TextView) findViewById(R.id.dateCurrent);
            final Calendar c = Calendar.getInstance();
            year = c.get(Calendar.YEAR);
            month = c.get(Calendar.MONTH);
            day = c.get(Calendar.DAY_OF_MONTH);
            dateCurrent.setText(new StringBuilder().append(day).append("-").append(month + 1).append("-").append(year).append(" "));
        }
     
        public void onClick(View v) {
            //    Bouton "Suivant", passage à l'activité suivante...
            if (v == findViewById(R.id.btnEnregistrer)) {
                int len1 = nom_qualite.length();
                if (!ancien_site.isChecked() && !par_pigiste.isChecked() && !par_client.isChecked())
                {
                    Toast.makeText(getApplicationContext(), "Veuillez saisir le champ \"Contenu\"", Toast.LENGTH_LONG).show();
                }
                else if (len1 == 0)
                {
                    Toast.makeText(getApplicationContext(), "Veuillez saisir le champ \"Nom et qualité\"", Toast.LENGTH_LONG).show();
                }
                // test signature
                else if (!signature.isActivated())
                {
                    signature.setEnabled(true);
                    Toast.makeText(getApplicationContext(), "Veuillez saisir votre signature", Toast.LENGTH_LONG).show();
                }
                else
                {
                    //    Si toutes les conditions sont remplies, passage à la seconde activité
                    Intent intent = new Intent(EcatalogueActivity5.this, EcatalogueActivity5.class);
                    startActivity(intent);
                }
            }
        }
    }
    Merci à toute aide apportée

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    As toi de définir un état dans la classe Application, dans une Instance, ou dans les préférence , ou dans la classe gérant l'IHM de ces boutons pour savoir quand activer le bouton enregistrer ^^.

    Comme pour une machine à état.

    Pour ativer ou désactiver un bouton tu peux utiliser la fonction setEnable().

  3. #3
    Membre averti
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2015
    Messages : 22
    Par défaut
    Bonjour,

    Oui pour désactiver le bouton après le premier clique setEnable(false) marche, j'ai fait ça dans signature :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    signature.setEnabled(false);
    signature.isActivated();
    Cependant, c'est dire qu'il doit forcément cliquer sur le bouton une fois que je n'arrive pas à faire, j'ai fait ça dans enregistrer mais ca ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    else if (!signature.isActivated())
    {
        signature.setEnabled(true);
        Toast.makeText(getApplicationContext(), "Veuillez saisir votre signature", Toast.LENGTH_LONG).show();
    }

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Cependant, c'est dire qu'il doit forcément cliquer sur le bouton une fois que je n'arrive pas à faire,
    J'ai rien compris :/

    C'est quoi quand tu déboggues qui te pose problème ?

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

Discussions similaires

  1. Clique Bouton sur un window enfant
    Par killer-soft dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/09/2009, 23h45
  2. c# cf 2.0 clique bouton arret
    Par sese12345 dans le forum C#
    Réponses: 4
    Dernier message: 25/08/2009, 18h02
  3. [XP] Mon ecran devient noir quand je clique bouton droit
    Par Smix007 dans le forum Périphériques
    Réponses: 2
    Dernier message: 16/03/2008, 18h37
  4. pb gestion focus + clique bouton
    Par stephsoux59 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/11/2007, 13h09
  5. Réponses: 7
    Dernier message: 30/05/2006, 11h00

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