Existe-t-il un widget comme celui EditText
qui contient un bouton croisé, ou existe-t-il une propriété pour EditText
laquelle il est créé automatiquement? Je veux que le bouton en croix supprime le texte écrit EditText
.
android
android-edittext
Arun Badole
la source
la source
Réponses:
Utilisez la disposition suivante:
Vous pouvez également utiliser l'ID du bouton et effectuer l'action que vous souhaitez sur sa méthode onClickListener.
la source
S'il vous arrive d'utiliser DroidParts , je viens d'ajouter ClearableEditText .
Voici à quoi cela ressemble avec un arrière-plan personnalisé et une icône claire définie à
abs__ic_clear_holo_light
partir d' ActionBarSherlock :la source
EditText
. Thx @yanchenkoSolution 2020 via Material Design Components pour Android:
Ajoutez des composants de matériau à votre configuration de gradle:
Recherchez la dernière version à partir d'ici: https://maven.google.com/
ou si vous n'avez pas mis à jour l'utilisation des bibliothèques AndroidX, vous pouvez l'ajouter de cette façon:
ensuite
Faire attention à: app: endIconMode = "clear_text"
Comme discuté ici Documents de conception de matériaux
la source
<androidx.appcompat.widget.AppCompatEditText/>
? pouvez-vous m'aider s'il vous plaitCeci est une solution kotlin. Mettez cette méthode d'assistance dans un fichier kotlin-
Et puis utilisez-le comme suit dans la
onCreate
méthode et vous devriez être bon pour aller-BTW, vous devez d'abord ajouter
R.drawable.ic_clear
ou l'icône claire. Celui-ci est de google- https://material.io/tools/icons/?icon=clear&style=baselinela source
this.clearFocus()
avant l'instruction return true, vous pouvez écouter cet événement sur l'appelant EditText avec l'onFocusChange
auditeursetCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
. Vous pouvez passer l'identifiant de l'icône à gauche comme nouveau paramètre à cette fonction et le mettre dans l'appel.La bibliothèque de support d'Android a une
SearchView
classe qui fait exactement cela. (Pas dérivéEditText
cependant, il faut donc utiliser unSearchView.OnQueryTextListener
au lieu d'unTextWatcher
)Utilisez en XML comme ceci:
la source
où x est:
la source
Car
drawable resource
vous pouvez utiliser des images Android standard:http://androiddrawables.com/Menu.html
Par exemple :
la source
Si vous ne souhaitez pas utiliser des vues personnalisées ou des dispositions spéciales, vous pouvez utiliser 9 patchs pour créer le bouton (X).
Exemple: http://postimg.org/image/tssjmt97p/ (je n'ai pas assez de points pour publier des images sur StackOverflow)
L'intersection des pixels noirs droit et inférieur représente la zone de contenu. Tout ce qui est en dehors de cette zone est du rembourrage. Donc, pour détecter que l'utilisateur a cliqué sur le x, vous pouvez définir un OnTouchListener comme ceci:
Selon vos besoins, cette solution peut mieux fonctionner dans certains cas. Je préfère garder mon xml moins compliqué. Cela est également utile si vous souhaitez avoir une icône à gauche, car vous pouvez simplement l'inclure dans le patch 9.
la source
J'ai fait la partie UI comme ci-dessous:
edittext_bg.xml
balloon_overlay_close.png
Bouton croix / effacer masquer / afficher:
Gérer les éléments de recherche (c.-à-d. Lorsque l'utilisateur clique sur Rechercher à partir du clavier de touches programmables)
Bouton Clear / Cross
la source
Utilisation
la source
Voici la bibliothèque complète avec le widget: https://github.com/opprime/EditTextField
Pour l'utiliser, vous devez ajouter la dépendance:
Dans le fichier layout.xml, vous pouvez jouer avec les paramètres du widget:
app: clearButtonMode , peut avoir de telles valeurs: jamais toujours whileEditing saufEditing
app: clearButtonDrawable
Échantillon en action:
la source
Mettez juste une croix serrée comme
drawableEnd
dans votreEditText
:et utilisez l'extension pour gérer les clics (ou utilisez
OnTouchListener
directement sur votreEditText
):utilisation de l'extension:
la source
Vous pouvez utiliser cet extrait de code avec la réponse Jaydip pour plusieurs boutons. il suffit de l'appeler après avoir obtenu une référence aux éléments ET et Button. J'ai utilisé le bouton vecotr, vous devez donc changer l'élément Button en ImageButton:
la source
Si vous êtes en disposition de cadre ou que vous pouvez créer une disposition de cadre, j'ai essayé une autre approche ....
Ceci est un texte d'édition où je mets une icône en croix comme un dessin à droite et qu'APRÈS, je mets un bouton transparent qui efface le texte.
la source
la source