web-dev-qa-db-fra.com

Comment désactiver EditText dans Android

Comment désactiver la saisie dans un champ EditText sous Android?

66
aj10

Je pense que c'est un bug dans Android..Il peut être corrigé en ajoutant ce correctif :)
Consultez ces liens question 1 Et question 2

J'espère que cela vous sera utile.

37
Midhun

vous pouvez utiliser EditText.setFocusable(false) pour désactiver l'édition
EditText.setFocusableInTouchMode(true) pour activer la modification;

57
chaitanya

Dans du code:

editText.setEnabled(false);

Ou, en XML:

Android:editable="false"
34
Gabriel Negut

En supposant que editText est votre objet EditText:

editText.setEnabled(false);
10
MByD

Il suffit de définir la propriété focusable de votre edittext sur "false" et vous avez terminé.

<EditText
        Android:id="@+id/EditTextInput"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:focusable="false"
        Android:gravity="right"
        Android:cursorVisible="true">
    </EditText>

Les options ci-dessous ne fonctionnent pas

Dans du code:

editText.setEnabled(false);.__ Ou, en XML: Android:editable="false"

8
ramit girdhar

Vous pouvez essayer la méthode suivante:

 private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
 }

EditText activé:

Enabled EditText

Désactivé EditText:

Disabled EditText

Cela fonctionne pour moi et j'espère que cela vous aidera.

8
Maksym Kalin
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
4
saigopi
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
2
Kumar Sukhani

Le code ci-dessous désactive le EditText dans Android

editText.setEnabled(false);
2
uday

Pour désactiver un edittext dans Android:

editText.setEnabled(false);
1
Vineet

Vous pouvez écrire edittext.setInputType(0) si vous voulez afficher le texte edittext mais ne saisir aucune valeur.

1
Jaydeep Khamar

La propriété XML editable est obsolète depuis API LEVEL 15 .

Vous devez maintenant utiliser la propriété inputType avec la valeur none. Mais il y a un bug qui rend cette fonctionnalité inutile.

Ici vous pouvez suivre l’état du problème.

0
Brugui

Écrivez ceci dans le parent:

Android:descendantFocusability="beforeDescendants"
Android:focusableInTouchMode="true"

Exemple:

<RelativeLayout 
Android:id="@+id/menu_2_zawezanie_rl"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/menu_2_horizontalScrollView"
Android:descendantFocusability="beforeDescendants"
Android:focusableInTouchMode="true"
Android:orientation="horizontal"
Android:background="@drawable/rame">

<EditText
    Android:id="@+id/menu2_et"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:layout_toLeftOf="@+id/menu2_ibtn"
    Android:gravity="center"
    Android:hint="@string/filtruj" >
</EditText>
<ImageButton
    Android:id="@+id/menu2_ibtn"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:background="@null"
    Android:src="@drawable/selector_btn" />

0
Gimer

Selon moi ... si vous avez déjà déclaré la edittext dans le fichier XML et définissez la propriété dans le fichier XML "Android:enabled=false" et la désactivez à l'exécution à ce moment-là dans Java. _ fichier n'ajoutant que 2 ou 3 lignes

  1. D'abord créer l'objet
  2. Déclarez EditText et1;
  3. Obtenez par id

    et1 = (EditText) FindViewById(R.id.edittext1);
    et1.setEnabled(false);

Vous pouvez activer ou désactiver chaque contrôle au moment de l'exécution par fichier Java et à la conception par fichier XML.

0
Nimisha Patel

Activer:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

Désactiver:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}
0
Danylo Volokh