Comment désactiver la saisie dans un champ EditText
sous Android?
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.
vous pouvez utiliser EditText.setFocusable(false)
pour désactiver l'éditionEditText.setFocusableInTouchMode(true)
pour activer la modification;
Dans du code:
editText.setEnabled(false);
Ou, en XML:
Android:editable="false"
En supposant que editText
est votre objet EditText
:
editText.setEnabled(false);
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"
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é:
Désactivé EditText:
Cela fonctionne pour moi et j'espère que cela vous aidera.
Edittext edittext = (EditText)findViewById(R.id.edit);
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
Le code ci-dessous désactive le EditText dans Android
editText.setEnabled(false);
Pour désactiver un edittext dans Android:
editText.setEnabled(false);
Vous pouvez écrire edittext.setInputType(0)
si vous voulez afficher le texte edittext mais ne saisir aucune valeur.
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.
É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" />
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
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.
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);
}