74 votes

EditText non modifiable

J'essaie de rendre un EditText non modifiable avec ce code :

 <EditText android:id="@+id/outputResult"
          android:inputType="text"
          android:editable="false"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="@string/result" />

J'ai dû ajouter la ligne suivante pour la rendre non modifiable

 android:focusable="false" 

Est-ce que je fais quelque chose de mal?

24voto

Akshay Taru Points 225

Je suppose que je suis en retard, mais utilisez les éléments suivants pour que cela fonctionne :

  android:inputType="none"
 android:enabled="false"

13voto

vovahost Points 1123

Si vous souhaitez rendre un EditText non modifiable à partir du code :

 void disableInput(EditText editText){
    editText.setInputType(InputType.TYPE_NULL);
    editText.setTextIsSelectable(false);
    editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v,int keyCode,KeyEvent event) {
                return true;  // Blocks input from hardware keyboards.
        }
    });
}

Si vous souhaitez supprimer la ligne horizontale de votre EditText, ajoutez simplement :

 editText.setBackground(null);

Si vous souhaitez permettre aux utilisateurs de copier le contenu de l'EditText, utilisez :

 editText.setTextIsSelectable(true);

10voto

Dharmendra Mishra Points 769
 <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editTexteventdate"
            android:background="@null"
            android:hint="Date of Event"
            android:textSize="18dp"
            android:textColor="#fff"
            android:editable="false"
            android:focusable="false"
            android:clickable="false"

            />

Ajoute ça

android:editable="false"

android:focusable="false"

android:clickable="false"

son travail pour moi

7voto

Si vous souhaitez vraiment utiliser un editText et non un textView, envisagez d'utiliser ces trois éléments :

 android:focusable="false"

android:clickable="false"

android:longClickable="false"

EDIT: L'attribut "longClickable" désactive les actions d'appui long qui font que les options "Coller" et/ou "Sélectionner tout" s'affichent sous forme d'info-bulle.

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