87 votes

setEnabled() vs setClickable(), quelle est la différence ?

Jusqu'à présent, lorsque je voulais empêcher l'utilisateur d'appuyer sur le bouton, je réglais l'option button.setClickable(false); et modifie généralement le texte en une sorte de couleur grise (pour indiquer à l'utilisateur que le bouton est désactivé). Aujourd'hui, je suis tombé sur le setEnabled() propriété.

J'ai donc consulté la documentation pour voir l'explication de la méthode ci-dessous :

setEnabled(boolean enabled)
   Set the enabled state of this view.

Qu'est-ce que cela signifie ? Quelle est la différence entre l'état activé/état cliquable et l'état désactivé/état non cliquable ? Quelqu'un pourrait-il m'expliquer quelle est la différence entre ce que je faisais précédemment, à savoir utiliser la propriété "clickable", et utiliser la propriété "non clickable" ? setEnabled() la propriété ? Que faut-il utiliser quand ? J'ai fait des recherches sur Stack Overflow mais je n'ai rien trouvé à ce sujet.

0voto

Aloys_寒风 Points 1

Les différences sont énumérées ci-dessus, mais il y a une astuce. Utilisez setClickable() après setOnClickListener(). À cause de cela :

public void setOnClickListener(@Nullable OnClickListener l) {
    if (!isClickable()) {
        setClickable(true);
    }
    getListenerInfo().mOnClickListener = l;
}

0voto

Muhammad Abdullah Points 109

SetClickable public void setClickable (booléen clickable)

Il active ou désactive les événements de clic pour la vue particulière. Lorsqu'une vue est cliquable, elle changera son état en "pressé" à chaque clic. Si cette propriété de la vue est désactivée, elle ne changera pas d'état.

setEnabled public void setEnabled (boolean enabled)

Il définit l'état activé de cette vue. Si la vue particulière est définie pour être activée, alors passez true dans le paramètre, sinon passez false.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X