Question

Comment puis-je désactiver la saisie EditText champ dans Android?

Était-ce utile?

La solution

Je pense que c'est un bug dans Android ... il peut être corrigé en ajoutant ce patch :)
Vérifiez ces liensquestion 1etquestion 2

J'espère que ce sera utile.

Autres conseils

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

Dans du code:

editText.setEnabled(false);

Ou, en XML:

android:editable="false"

En supposant editText est toi EditText objet:

editText.setEnabled(false);

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

EditText désactivé:

Disabled EditText

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

Réglez simplement la propriété focalisable de votre édition pour "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"

Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);

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

editText.setEnabled(false);
edittext.setFocusable(false); 
edittext.setEnabled(false);

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

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

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);
}

Pour désactiver un EditText dans Android:

editText.setEnabled(false);

Tu peux écrire edittext.setInputType(0) Si vous souhaitez afficher le EditText mais ne sais pas de valeurs

Écrivez ceci dans 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" />

Selon moi ... si vous avez déjà déclaré le edittext Dans le fichier XML et définir la propriété dans le fichier XML "android:enabled=false" et désactiver au moment de l'exécution à ce moment-là dans le fichier java ajoutant seulement 2 ou 3 lignes

  1. Créez d'abord l'objet
  2. Déclarer EditText ET1;
  3. Get By 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 temps de conception par fichier XML.

Le XML editable la propriété est obsolète depuis Niveau API 15.

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

Ici Vous pouvez suivre l'état du problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top