156 votes

Comment ajouter une icône dans la vue EditText sous Android ?

Je veux ajouter une icône de "recherche" qui apparaîtra à l'intérieur d'une page d'accueil. EditText dans le bord gauche ? comme la boîte de recherche dans l'application Facebook Android ?

480voto

marcosbeirigo Points 3686

Utilisez le android:drawableLeft de l'EditText.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />

3 votes

Désolé pour le manque de clarté de ma question, je veux ajouter un bouton, de sorte que lorsque je clique dessus, il effectue une action.

22 votes

C'est exactement la solution que j'attendais, compte tenu de l'intitulé de la recherche.

37 votes

Vous pouvez également ajuster le rembourrage à l'aide de la fonction drawablePadding propriété.

35voto

Peter Ajtai Points 26377

Vous pouvez définir drawableLeft dans le XML comme suggéré par marcos mais vous pouvez aussi vouloir la définir de manière programmatique, par exemple en réponse à un événement. Pour ce faire, utilisez la méthode setCompoundDrawablesWithIntrincisBounds(int, int, int, int, int) :

EditText editText = findViewById(R.id.myEditText);

// Set drawables for left, top, right, and bottom - send 0 for nothing
editTxt.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0);

0 votes

Cela définit l'arrière-plan de l'EditText, et non l'icône/image du "bord gauche", ce qui est clairement mentionné dans la question.

0 votes

@Paresh - c'est pourquoi j'ai supprimé la réponse. J'ai maintenant édité pour inclure une solution programmatique en plus de la solution XML originale.

1 votes

Comment masquer l'icône de manière programmée ? lorsque la boîte d'édition est cliquée ?

31voto

Jonathan Points 328

Si vous voulez utiliser le dessinateur par défaut d'Android, vous pouvez utiliser @android:drawable/ic_menu_search comme ça :

<EditText android:id="@+id/inputSearch"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawableLeft="@android:drawable/ic_menu_search"
    android:hint="Search product.."
    android:inputType="textVisiblePassword"/>

8voto

Maher Abuthraa Points 736

Utilisez :

<EditText
    ..     
    android:drawableStart="@drawable/icon" />

3voto

Rohit Jakhar Points 51

Utiliser Android:drawbleStart propery on EditText

    <EditText
        ...     
        android:drawableStart="@drawable/my_icon" />

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