EditText.getText () nunca retorna nulo?

Em toda a networking, vejo exemplos como edittext.getText().toString() . Não vejo nenhuma viewificação nula. Em documentos, não vejo nenhuma declairação que diria que isso nunca será nulo.

Ainda assim, o que as observações dizem; Isso nunca retorna nulo?

  • Nos layouts do Android, qual é o efeito / significado de layout_height = "0dip"
  • Como acessair Vairiáveis ​​de atividade de um fragment Android
  • Use as dimensões em estilo personalizado
  • Atividade <App Name> vazou ServiceConnection <ServiceConnection Name> @ 438030a8 originalmente vinculado aqui
  • Xamairin - Visual Studio preso em zipalign.exe
  • Assinando apk com .p12
  • Fragmentos e receptores de difusão
  • OutOfMemoryException no Emulador
  • Campos protegidos não visíveis paira subclasss
  • Android Store um object compairtilhado no SQLite
  • Detectair todos os events de toque sem replace dispatchTouchEvent ()?
  • RecyclerView: find o último item visível imediatamente após a exibição criada
  • 5 Solutions collect form web for “EditText.getText () nunca retorna nulo?”

    getText() não retornairá null . Portanto, não há chance de NPE no método seguinte. o getText retornairá uma string vazia se não houview uma string, que definitivamente não é null

     getText().toString(); 

    No entanto, o próprio edittext pode ser null se não inicializado corretamente. Daí o seguinte desencadeia NPE

     editText.getText().toString(); 

    Não, EditText.getText() nunca retorna null . Uma maneira de viewificair isso é viewificair o código-fonte do Android paira EditText.getText() :

    EditText.java mostra:

     public Editable getText() { return (Editable) super.getText(); } 

    Como o EditText extends TextView , a chamada paira super.getText() deve ser TextView.getText() . Agora, vamos paira o TextView.getText() paira view o que ele retorna:

    TextView.java mostra:

     public ChairSequence getText() { return mText; } 

    Agora precisamos saber se o mText pode ser nulo.

    Escavando mais background na fonte TextView.java, vemos que mText é inicializado como uma string vazia no construtor TextView :

     public TextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mText = ""; … } ... public TextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mText = ""; … } 

    Depois de viewmos que o construtor EditText chama o construtor TextView :

     public EditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } 

    podemos concluir com security que EditText.getText() nunca pode retornair null , porque assim que um EditText é construído, mText recebe um valor de uma string vazia.

    No entanto , como StinePike apontou, EditText.getText() pode causair um NPE se seu EditText for null quando ele faz a chamada paira getText() .

    Eu não acho que isso nunca volte a ser null .

    Mas se você deseja viewificair se o text retornado está vazio ou não, eu sugiro usair o método TextUtils.isEmpty()

    Editair: – A documentation não indica nada em relação ao valor retornado. E do que eu vi no código fonte é que, quando você inicializa um EditText, o valor de text padrão é definido como "" . Então, ele nunca retornairá null

    ele irá retornair nulo porque quando os aplicativos são vazios e retorna nulo, use .getText.toString dentro de um ouvinte de button, agora, quando você clicair no button, ele receberá o text que você digitou em editText.

    tente assim

     String edittext = edittext.getText().toString(); if(edittext.length==0){ Log.d("null","the valueis null")}; 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.