Nous pouvons définir la propriété éditable de EditText
dans la présentation XML, mais pas par programme, mais il n'y a pas de méthode setEditable()
!
Si EditText
n'est pas activé [par setEnabled(false)
] toujours éditable !
Je l'ai fait d'une manière plus facile, setEditable et setFocusable false. mais vous devriez vérifier cela.
Cela peut aider:
if (cbProhibitEditPW.isChecked()) { // disable editing password
editTextPassword.setFocusable(false);
editTextPassword.setFocusableInTouchMode(false); // user touches widget on phone with touch screen
editTextPassword.setClickable(false); // user navigates with wheel and selects widget
isProhibitEditPassword= true;
} else { // enable editing of password
editTextPassword.setFocusable(true);
editTextPassword.setFocusableInTouchMode(true);
editTextPassword.setClickable(true);
isProhibitEditPassword= false;
}
Récupérez la valeur KeyListener de EditText
par editText.getKeyListener()
Et stockez-la dans la variable KeyListener type, qui contiendra La valeur de propriété Editable:
KeyListener variable;
variable = editText.getKeyListener();
Définissez la propriété Editable de EditText
sur false comme suit:
edittext.setKeyListener(null);
Définissez maintenant la propriété Editable de EditText
sur true comme suit:
editText.setKeyListener(variable);
Remarque: En XML, la propriété Editable par défaut de EditText
doit être true.
editText.setInputType(InputType.TYPE_NULL);
Comment le faire par programme:
Pour activer EditText, utilisez:
et.setEnabled(true);
Pour désactiver EditText, utilisez:
et.setEnabled(false);
espérons que celui-ci vous aide:
edittext1.setKeyListener(null);
edittext1.setCursorVisible(false);
edittext1.setPressed(false);
edittext1.setFocusable(false);
Une fois le focus du texte modifié supprimé, vous ne pourrez plus taper même si vous le réglez à nouveau sur focus.
Voici un moyen de contourner
if (someCondition)
editTextField.setFocusable(false);
else
editTextField.setFocusableInTouchMode(true);
La définition de true dans setFocusableInTouchMode()
semble faire l'affaire.
essaye ça,
EditText editText=(EditText)findViewById(R.id.editText1);
editText.setKeyListener(null);
Ça fonctionne bien...
Essayez ceci cela fonctionne très bien pour moi ..
EditText.setInputType(0);
EditText.setFilters(new InputFilter[] {new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend)
{
return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
}
}
});
editText.setFocusable(false);
editText.setClickable(false);
Puisque setEditable(false)
est obsolète, utilisez textView.setKeyListener(null);
pour rendre editText non-cliquable.
Une méthode simple et sûre:
editText.clearFocus();
editText.setFocusable(false);