Comment faire pour désactiver un Android bouton?
J'ai créé une mise en page qui contient deux boutons Suivant et Précédent. Entre les boutons, je suis de générer des vues dynamiques. Alors quand j'ai lancer l'application, je souhaite désactiver le bouton "Précédent" car il n'y aura point de vue précédent. Je tiens aussi à désactiver le bouton "Suivant" quand il n'y a pas plus de vues à l'écran. Est-il de toute façon à désactiver les boutons?
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé?
Mise à jour: Merci à Gwen. Presque oublié que
android:clickable
peut être mis dans votre mise en page XML pour déterminer si un bouton peut être cliquable ou pas.Vous ne pouvez pas l'activer ou le désactiver dans votre XML (depuis votre mise en page est définie au moment de l'exécution), mais vous pouvez définir si c'est cliquable à l'occasion du lancement de l'activité avec
android:cliquable
.Vous venez d'écrire une seule ligne de code dans votre activité
Lorsque vous souhaitez activer le même bouton, il suffit d'écrire
((Button)findViewById(R.id.mybutton)).setEnabled(false);
En Java, une fois que vous avez la référence du bouton:
Pour activer/désactiver le bouton, vous pouvez utiliser soit:
Ou:
Puisque vous voulez désactiver le bouton depuis le début, vous pouvez utiliser bouton.setEnabled(false); dans la méthode onCreate.
Sinon, à partir de XML, vous pouvez utiliser directement:
Donc:
Oui, il peut être désactivé en XML
juste à l'aide de
<Button
android:enabled="false"
/>
android:enabled
lorsque vous commencez à taper. (Même à ce jour.)setEnabled
travailleDans mon cas,
fonctionne bien et c'est l'activation et la désactivation du bouton comme il se doit. Mais une fois que l'état du bouton est désactivé, il ne va jamais revenir à l'état activé de nouveau, bien qu'il soit cliquable. J'ai essayé d'invalider et de l'actualisation de la drawable état, mais pas de chance.
Si vous ou toute personne ayant un problème similaire, ce qui fonctionne pour moi est de définir l'arrière-plan dessiné à nouveau. Fonctionne sur n'importe quel Niveau API.
Dans Kotlin, si vous vous référez le Bouton voir avec l'id puis, activer/désactiver le bouton comme
layout.xml
activité.kt
première en xml rendre le bouton
android:clickable="false"
puis dans votre code, à l'intérieur de
oncreate()
méthode réglez le bouton de la propriété commepuis à l'intérieur du bouton, cliquez sur modifier le code dans
MAUVAISE FAÇON EN AUDITEUR À L'UTILISATION DE LA VARIABLE AU LIEU DE PARAMÈTRE!!!
DROIT CHEMIN:
EDIT:
En réponse à @jeroen-bollen
lorsque la vue est cliqué, la classe d'Affichage de l'objet de rappel à la méthode onClick() envoyer comme paramètre lui-même, null afficher le paramètre ne doit pas se produire si il le fait c'est un Erreur d'Assertion il pourrait se produire par exemple lors de l'Affichage de la classe d'objet a été détruit dans le temps (par exemple recueillis par GC) ou la méthode a été altéré en raison de hack
peu sur instanceof & null
trois mots de l'Auteur
SI U SE DEMANDER POURQUOI ?
SURTOUT POUR ÉVITER de NullPointerException
Peu plus de code permettent de gagner du temps plus tard de suivi de bug dans votre code & réduit l'apparition de abnomalies.
considérons l'exemple suivant:
v
n'est pas unButton
.