Ne EditText.getText() jamais renvoie la valeur null?
Sur le net je vois des exemples comme edittext.getText().toString()
. Je ne vois pas null vérifier. Dans les docs je ne vois pas de déclaration de dire que ce ne sera jamais nulle.
Encore, ce qui ne les observations dire, est-ce toujours retourner la valeur null?
- au-delà de votre code...
- String s=edittext.getText().toString(); if(s!=null)return true;
- Ma question est, EditText.getText() retourne jamais nulle? @c. à thé de votre code entraînera des NPE dans ce cas.
- Peut-être l'avertissement est vraiment en disant: "l'utilisateur peut avoir tapé le mot, 'null'," dans l'edittext. teehee!
Vous devez vous connecter pour publier un commentaire.
getText()
ne sera pas de retournull
. Donc, il n'y a aucune chance pour les entrées en phase nationale dans la méthode suivante. legetText
sera renvoie la chaîne vide si il n'y a pas de chaîne, qui n'est certainement pasnull
Cependant l'edittext lui-même peut être
null
si pas correctement initialisé, Donc la suivante sera le déclencheur d'entrées en phase nationalesetText(null)
. Si vous l'essayez en interne conversion une chaîne vide.TextView
, alors vous verrez qu'getText()
ne reviendra jamaisnull
.Mise à JOUR:
Il semble du 18 janvier 2018 c'est maintenant possible.
VIEILLE RÉPONSE:
Non,
EditText.getText()
ne retourne jamaisnull
. Une façon de vérifier cela est de vérifier le code source Android pourEditText.getText()
:EditText.java montre:
Depuis
EditText extends TextView
, l'appel àsuper.getText()
doit êtreTextView.getText()
. Maintenant nous passons àTextView.getText()
pour voir de quoi il en retourne:TextView.java montre:
Maintenant nous avons besoin de savoir si
mText
pourrait jamais être null.Creuser plus profondément dans la TextView.java source, nous pouvons voir que
mText
est initialisé comme une chaîne vide dans leTextView
constructeur:Une fois, nous voyons que le
EditText
constructeur appelle laTextView
constructeur:nous pouvons conclure que
EditText.getText()
ne peut pas revenirnull
, parce que dès qu'unEditText
est construit,mText
est donné une valeur à la chaîne vide.Cependant, comme StinePike souligné,
EditText.getText()
peut éventuellement provoquer une NPE si votre EditText estnull
quand il fait l'appelgetText()
.Avec Android P SDK il est annoté que les valeurs null dans les
AppCompatEditText
classe de sorte qu'il peut retourner null.Et de les docs:
Je ne pense pas qu'il va jamais revenir
null
.Mais si vous voulez vérifier si le texte renvoyé est vide ou pas, pourrais-je vous suggérer l'aide de
TextUtils.isEmpty()
méthodeEdit:- La documentation n'est pas les états quelque chose au sujet de la valeur retournée. Et à partir de ce que j'ai vu dans le code source, c'est que lorsque vous initialisez un EditText, le texte par défaut la valeur est définie à
""
. De sorte qu'il ne retournera jamaisnull
il sera de retour nulle, car lorsque les applications s'exécute ses vides et elle renvoie la valeur null, utiliser .getText.toString à l'intérieur d'un clic sur un bouton de l'écouteur, maintenant, lorsque vous cliquez sur le bouton, il va obtenir le texte que vous avez entré sur editText.
essayer de cette façon
edittext
n'est pasnull
, c'est une chaîne vide. Si c'étaitnull
, appelantedittext.length
jeter un NPE. Aussilength()
est une méthode BTW.