그물 전체에 edittext.getText().toString()
과 같은 예가 표시됩니다. null 체크가 보이지 않습니다. 문서에서 나는 이것이 결코 null이 될 것이라고 말하지는 않을 것이다.EditText.getText()가 null을 반환합니까?
그래도 관측 내용은 무엇입니까? 이것이 null을 반환합니까?
그물 전체에 edittext.getText().toString()
과 같은 예가 표시됩니다. null 체크가 보이지 않습니다. 문서에서 나는 이것이 결코 null이 될 것이라고 말하지는 않을 것이다.EditText.getText()가 null을 반환합니까?
그래도 관측 내용은 무엇입니까? 이것이 null을 반환합니까?
getText()
는 null
를 돌려 보내지 않을 것이다. 따라서 NPE는 다음과 같은 방법을 사용할 수 없습니다. 따라서 다음은 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
는 그러나 글고 자체가 null
될 수 없습니다 확실히 더 문자열이없는 경우 getText
는 빈 문자열을 반환합니다 , EditText.getText()
는 null
을 반환하지 않습니다. 이를 확인하는 한 가지 방법은 EditText.getText()
의 안드로이드 소스 코드를 확인하는 것입니다 :
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이 될 수 있는지 알 필요가 있습니다. 우리가 mText
가 TextView
생성자에서 빈 문자열로 초기화되는 것을 볼 수있는 TextView.java 소스에 더 깊이 파고
:
public TextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mText = "";
…
}
우리는 EditText
생성자가 TextView
생성자를 호출하는 것을 볼 일단 :
public EditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
을
EditText.getText()
은 null
을 결코 반환 할 수 없다고 결론을 내릴 수 있습니다. 이는 EditText
이 발생하면 cted, mText
에는 빈 문자열 값이 지정됩니다.그러나
, StinePike 지적대로 getText()
에 호출 할 때 글고 치기가 null
경우, EditText.getText()
는 아마도 NPE가 발생할 수 있습니다.
빈을 실행하고 null을 반환하면 버튼 클릭 리스너 내에서 .getText.toString을 사용하므로 button을 클릭하면 editText에 입력 한 텍스트가 표시되므로 null이 반환됩니다.
코드 뒤 ... – morroko
String s = edittext.getText(). toString(); if (s! = null)이 true를 반환하면; –
제 질문은 EditText.getText()가 null을 반환 할 것입니까? 이 경우 @tsp 코드가 NPE가됩니다. – AppleGrew