Pourquoi puis-je taper dans un EditText désactivé?

Si je désactive un widget EditText utilisant

 editText.setEnabled(false); 

Je peux toujours taper cela en utilisant la méthode d'entrée à l'écran (à la fois dans l'émulateur et sur le G1). Est-ce prévu? Comment puis-je contourner ce problème?

  • Trouver le numéro de version de l'application dans le code
  • Comment la méthode ArrayAdapter getView () fonctionne-t-elle?
  • Ouvrir l'URL dans WebView au lieu du navigateur par défaut
  • Autorisation de lire les données de la carte SD
  • Android automatique à l'horizontale défilement TextView
  • Les dégouts de produits de dépendance Android Gradle
  • 8 Solutions collect form web for “Pourquoi puis-je taper dans un EditText désactivé?”

    Je remarque que vous ne pouvez pas activer le clavier à l'écran en appuyant sur un EditText désactivé, et que la touche DEL ne fonctionne pas, donc cela ressemble à un bug pour moi. Je l'ai déposé en tant que problème 2771 dans le tracker de problème Android.

     edittext.setKeyListener(null); 

    Cela vous aidera

    Utilisez cela, cela a fonctionné pour moi

     setFocusableInTouchMode(boolean); setFocusable(boolean); 

    J'ai corrigé ce problème, mais le patch n'a été inclus dans Honeycomb. C'est pourquoi j'ai créé un petit projet qui contiendra mes corrections renvoyées vers des versions à partir de 2.1. Il contient le correctif pour le bug 2771: http://code.google.com/p/android-fixes/
    Vous pouvez consulter la «bibliothèque» du svn et l'inclure dans votre projet. Ensuite, au lieu d'android.widget.EditText, importez edu.ubbdroid.android.widget.EditText (qui étend le EditText d'origine) et le problème devrait disparaître 🙂

    Peut-être que vous pourriez alternativement remplacer dynamiquement avec TextView et retour. Mais vous devriez probablement ajuster la police pour faire correspondre EditText.

     etComment.setEnabled(flag); etComment.setFocusable(flag); etComment.setFocusableInTouchMode(flag); if (flag) { etComment.requestFocus(); } etComment.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter( CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if (!flag) { return source.length() < 1 ? dest.subSequence(dstart, dend) : ""; } return null; } } }); 

    Pour tout ce que vous pouvez obtenir!

    Je pense que vous devriez pouvoir éditerText.setOnClickListener () avec votre propre fonction et appeler super.onClickListener () si vous souhaitez que votre texte soit modifié.

    Modifier:
    Le lien suivant contient des réponses qui ressemblent davantage à la bonne façon:
    Peut-on avoir un texte non éditable dans edittext

    Pour une réponse plus à jour, vérifiez ce fil:

    Comment faire pour répliquer Android modifiable faux

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.