J'essaie de mettre un EditText comme non éditable 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 ceci pour non éditable
Android:focusable="false"
Est-ce que je fais quelque chose de mal?
Merci beaucoup
Android:editable="false"
devrait fonctionner, mais il est obsolète , vous devriez plutôt utiliser Android:inputType="none"
.
Alternativement, si vous voulez le faire dans le code, vous pouvez le faire:
EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(false);
C'est aussi une alternative viable:
EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setKeyListener(null);
Si vous voulez rendre votre EditText
non éditable, permettez-moi de vous suggérer d'utiliser le widget TextView
au lieu de EditText
, car utiliser un EditText semble inutile dans ce cas.
EDIT: Modifié certaines informations depuis que j'ai découvert que Android:editable
est obsolète et que vous devriez utiliser Android:inputType="none"
, mais il y a un bogue à ce sujet dans le code Android; Alors s'il vous plaît vérifier this .
Dans le cas où vous souhaitez rendre un EditText non éditable à 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 voulez laisser les utilisateurs copier le contenu de EditText, utilisez:
editText.setTextIsSelectable(true);
<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
Je suppose que je suis en retard, mais que nous suivons ensemble pour que cela fonctionne:
Android:inputType="none"
Android:enabled="false"
Ajouter la ligne ci-dessous dans votre edittext xml.
Android:editable="false"
Android:focusable="false"
Android:clickable="false"
Ça marche pour moi
J'ai eu ce problème également.
J'ai fait ça:
<EditText
Android:layout_width="30dp"
Android:layout_height="wrap_content"
Android:id="@+id/yourid"
Android:editable="false"
Android:inputType="none" />
Si vous voulez 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 longues qui font que les options "Coller" et ou "Sélectionner tout" sont affichées dans une info-bulle.