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