ネット全体には、edittext.getText().toString()
のような例があります。私はヌルチェックを見ない。ドキュメントでは、これは決してnullではないと言う声明は表示されません。EditText.getText()はnullを返しますか?
でも、観察は何を言いますか。これはこれまでにnullを返しますか?
ネット全体には、edittext.getText().toString()
のような例があります。私はヌルチェックを見ない。ドキュメントでは、これは決してnullではないと言う声明は表示されません。EditText.getText()はnullを返しますか?
でも、観察は何を言いますか。これはこれまでにnullを返しますか?
getText()
はnull
を返しません。したがって、次の方法ではNPEの可能性はありません。 EditText自体はnull
正しく初期化されていないことができます場合は、そこで次のことがありませんNPE
editText.getText().toString();
ボーナスとして、 'setText(null)'さえできません。しようとすると内部的に変換されます(http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/widget/TextView.java #TextView.setText%28java.lang.CharSequence%2Candroid.widget.TextView.BufferType%2Cboolean%2Cint%29)それを空の文字列に変換します。 – Geobits
'TextView'のソースコードをチェックすると' getText() 'が決して' null'を返さないことがわかります。 – d3m0li5h3r
EditTextは行いませんが、EditTextPreferenceはnullを返し、防止されていない場合はNPEを引き起こします。 –
は、私はそれが今までnull
を返しますと思ういけないこのよう
String edittext = edittext.getText().toString();
if(edittext.length==0){ Log.d("null","the valueis null")};
にしてみてください。
しかし、あなたが返されるテキストは、私が
編集TextUtils.isEmpty()
方法を使用することをお勧めかもしれない空であるかどうかを確認する場合: -ドキュメントが返された値については何も述べていません。そして私がソースコードで見たことから、EditTextを初期化すると、デフォルトのテキスト値は""
に設定されます。だからそれは返されませんnull
をトリガーします間違いなく
getText().toString();
null
getText
は空の文字列を返します。 、
EditText.getText()
は
null
を返します。これを確認する一つの方法は、
EditText.getText()
のためにAndroidのソースコードをチェックすることです:
EditText.javaショー:
public Editable getText() {
return (Editable) super.getText();
}
EditText extends TextView
ので、super.getText()
への呼び出しがTextView.getText()
でなければなりません。今、私たちはそれを返すかを確認するTextView.getText()
に移動:
TextView.javaショー:
public CharSequence getText() {
return mText;
}
は、今、私たちはmText
が今までnullになることができれば知っている必要があります。我々はEditText
コンストラクタはTextView
コンストラクタを呼び出していることを確認したら
public TextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mText = "";
…
}
:
たちはmText
がTextView
コンストラクタに空の文字列として初期化されていることがわかりTextView.javaソースに深く掘り
public EditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
EditText.getText()
はnull
を返すことはできませんが、EditText
がすぐにcted、mText
には、空の文字列の値が与えられます。しかし
、StinePikeが指摘したように、それはgetText()
への呼び出しを行ったときに、あなたのEditTextがnull
であれば、EditText.getText()
はおそらくNPEを引き起こす可能性があります。
アプリが空の状態でnullを返したときに、ボタンクリックリスナー内で.getText.toStringを使用すると、ボタンをクリックするとeditTextに入力したテキストが表示されるため、nullが返されます。
あなたのコードは... – morroko
String s = edittext.getText()。toString(); if(s!= null)がtrueを返します。 –
私の質問は、EditText.getText()はnullを返しますか?その場合は@tspあなたのコードはNPEになります。 – AppleGrew