Compruebe si EditText está vacío.

Tengo 5 EditTexts en Android para que los usuarios EditTexts . Me gustaría saber si podría tener un método para verificar los 5 EditTexts si son nulos. ¿Hay alguna manera de hacer esto?

Hice algo como esto una vez;

 EditText usernameEditText = (EditText) findViewById(R.id.editUsername); sUsername = usernameEditText.getText().toString(); if (sUsername.matches("")) { Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show(); return; } 
 private boolean isEmpty(EditText etText) { if (etText.getText().toString().trim().length() > 0) return false; return true; } 

O como por audrius

  private boolean isEmpty(EditText etText) { return etText.getText().toString().trim().length() == 0; } 

Si la función return false significa que edittext not empty está not empty y que true significa que edittext está empty

Para validar EditText use EditText # setError method para mostrar el error y para verificar valores vacíos o nulos usa la clase android incorporada TextUtils.isEmpty (strVar) que devuelve verdadero si strVar es nulo o de longitud cero

 EditText etUserName = (EditText) findViewById(R.id.txtUsername); String strUserName = etUserName.getText().toString(); if(TextUtils.isEmpty(strUserName)) { etUserName.setError("Your message"); return; } 

Imagen tomada de la búsqueda de Google

prueba esto :

 EditText txtUserName = (EditText) findViewById(R.id.txtUsername); String strUserName = usernameEditText.getText().toString(); if (strUserName.trim().equals("")) { Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show(); return; } 

o usa la clase TextUtils de esta manera:

 if(TextUtils.isEmpty(strUserName)) { Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show(); return; } 

Hasta tarde en la fiesta aquí, pero solo tengo que agregar el propio TextUtils.isEmpty de Android (CharSequence str)

Devuelve true si la cadena es nula o 0-length

Entonces, si coloca sus cinco EditTexts en una lista, el código completo sería:

 for(EditText edit : editTextList){ if(TextUtils.isEmpty(edit.getText()){ // EditText was empty // Do something fancy } } 

Otras respuestas son correctas, pero hazlo de una manera corta, como

 if(editText.getText().toString().isEmpty()) { // editText is empty } else { // editText is not empty } 

Prueba esto

 TextUtils.isEmpty(editText.getText()); 

Puede usar length() desde EditText .

 public boolean isEditTextEmpty(EditText mInput){ return mInput.length() == 0; } 

Usualmente hago lo que SBJ propone, pero al revés. Simplemente me resulta más fácil entender mi código al verificar resultados positivos en lugar de dobles negativos. Es posible que esté preguntando cómo buscar EdiTexts vacíos, pero lo que realmente desea saber es si tiene algún contenido y no que no está vacío.

Al igual que:

 private boolean hasContent(EditText et) { // Always assume false until proven otherwise boolean bHasContent = false; if (et.getText().toString().trim().length() > 0) { // Got content bHasContent = true; } return bHasContent; } 

Como SBJ , prefiero devolver “no tiene contenido” (o false ) como predeterminado para evitar excepciones porque revisé mi verificación de contenido. De esa manera, estará absolutamente seguro de que sus cheques han “aprobado” un true .

También creo que if llama también se ve un poco más limpio:

 if (hasContent(myEditText)) { // Act upon content } else { // Got no content! } 

Depende mucho de la preferencia, pero me parece más fácil de leer. 🙂

Yo uso este método, que usa trim() para evitar espacios en blanco:

 EditText myEditText = (EditText) findViewById(R.id.editUsername); if ("".equals(myEditText.getText().toString().trim()) { Toast.makeText(this, "You did not enter a value!", Toast.LENGTH_LONG).show(); return; } 

un ejemplo si tiene varios EditText’s

 if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){ Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show(); return; } 
 if(TextUtils.isEmpty(textA.getText())){ showToast(it's Null"); } 

¡puedes usar TextUtils.isEmpty como mi Ejemplo! Buena suerte

 private boolean hasContent(EditText et) { return (et.getText().toString().trim().length() > 0); } 

¿Por qué no simplemente deshabilitar el botón si EditText está vacío? En mi humilde opinión Esto se ve más profesional:

  final EditText txtFrecuencia = (EditText) findViewById(R.id.txtFrecuencia); final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleStartStop); txtFrecuencia.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { toggle.setEnabled(txtFrecuencia.length() > 0); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } }); 

TextUtils para esto:

 if (TextUtils.isEmpty(UsernameInfo.getText())) { validationError = true; validationErrorMessage.append(getResources().getString(R.string.error_blank_username)); } 

También puede verificar todas las cadenas de texto de edición en una condición If: como esta

 if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) { Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show(); } 

Yo quería hacer algo similar. Pero obtener el valor del texto de editar texto y compararlo como (str=="") no me funcionaba. Entonces, mejor opción era:

 EditText eText = (EditText) findViewById(R.id.etext); if (etext.getText().length() == 0) {//do what you want } 

Trabajado como un encanto.

Pruebe esto con el uso de las condiciones If ELSE If. Puede validar sus campos editText fácilmente.

  if(TextUtils.isEmpty(username)) { userNameView.setError("User Name Is Essential"); return; } else if(TextUtils.isEmpty(phone)) { phoneView.setError("Please Enter Your Phone Number"); return; } 

Puede llamar a esta función para cada uno de los textos de edición:

 public boolean isEmpty(EditText editText) { boolean isEmptyResult = false; if (editText.getText().length() == 0) { isEmptyResult = true; } return isEmptyResult; } 
 EditText txtUserID = (EditText) findViewById(R.id.txtUserID); String UserID = txtUserID.getText().toString(); if (UserID.equals("")) { Log.d("value","null"); } 

Verás el mensaje en LogCat ….

use TextUtils.isEmpty("Text here"); para código de línea única

 EditText edt=(EditText)findViewById(R.id.Edt); String data=edt.getText().toString(); if(data=="" || data==null){ Log.e("edit text is null?","yes"); } else { Log.e("edit text is null?","no"); } 

hacer así para los cinco textos de edición

“mira esto estoy seguro de que te gustará”.

 log_in.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub username=user_name.getText().toString(); password=pass_word.getText().toString(); if(username.equals("")) { user_name.setError("Enter username"); } else if(password.equals("")) { pass_word.setError("Enter your password"); } else { Intent intent=new Intent(MainActivity.this,Scan_QRActivity.class); startActivity(intent); } } }); 

Puede usar setOnFocusChangeListener , se comprobará cuando cambie el foco

  txt_membername.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { if (arg1) { //do something } else { if (txt_membername.getText().toString().length() == 0) { txt_membername .setError("Member name is not empty, Plz!"); } } } }); 
 if ( (usernameEditText.getText()+"").equals("") ) { // Really just another way } 

Prefiero usar el enlace de la lista ButterKnife y luego aplicar acciones en la lista. Por ejemplo, con el caso de EditTexts, tengo definidas las siguientes acciones personalizadas en una clase de utilidad (en este caso, ButterKnifeActions )

 public static  boolean checkAll(List views, ButterKnifeActions.Check checker) { boolean hasProperty = true; for (int i = 0; i < views.size(); i++) { hasProperty = checker.checkViewProperty(views.get(i), i) && hasProperty; } return hasProperty; } public static  boolean checkAny(List views, ButterKnifeActions.Check checker) { boolean hasProperty = false; for (int i = 0; i < views.size(); i++) { hasProperty = checker.checkViewProperty(views.get(i), i) || hasProperty; } return hasProperty; } public interface Check { boolean checkViewProperty(V view, int index); } public static final ButterKnifeActions.Check EMPTY = new Check() { @Override public boolean checkViewProperty(EditText view, int index) { return TextUtils.isEmpty(view.getText()); } }; 

Y en el código de vista, enlace los EditTexts a una lista y aplico las acciones cuando necesito verificar las vistas.

 @Bind({R.id.edit1, R.id.edit2, R.id.edit3, R.id.edit4, R.id.edit5}) List edits; ... if (ButterKnifeActions.checkAny(edits, ButterKnifeActions.EMPTY)) { Toast.makeText(getContext(), "Please fill in all fields", Toast.LENGTH_SHORT).show(); } 

Y, por supuesto, este patrón es extensible para verificar cualquier propiedad en cualquier cantidad de vistas. El único inconveniente, si se puede llamar así, es la redundancia de puntos de vista. Es decir, para usar esos EditTexts, también debería vincularlos a variables individuales, de modo que pueda hacer referencia a ellos por su nombre o deberá hacer referencia a ellos por posición en la lista ( edits.get(0) , etc.). Personalmente, solo ato cada uno de ellos dos veces, una vez a una sola variable y una vez a la lista y uso el que sea apropiado.

Para editar texto está vacío prueba otro de esta manera simple:

 String star = editText.getText().toString(); if (star.equalsIgnoreCase("")) { Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show(); } 

Prueba esto: está en Kotlin

 //button from xml button.setOnClickListener{ val new=addText.text.toString()//addText is an EditText if(new=isNotEmpty()) { //do something } else{ new.setError("Enter some msg") //or Toast.makeText(applicationContext, "Enter some message ", Toast.LENGTH_SHORT).show() } } 

Gracias

Lo siguiente funciona para mí todo en una statement:

 if(searchText.getText().toString().equals("")) Log.d("MY_LOG", "Empty"); 

Primero recupero un texto de EditText y luego lo convierto en una cadena y finalmente lo comparo con "" usando el método .equals .

esta función funciona para mí

private void checkempForm () {

  EditText[] allFields = { field1_txt, field2_txt, field3_txt, field4_txt}; List ErrorFields =new ArrayList();//empty Edit text arraylist for(EditText edit : allFields){ if(TextUtils.isEmpty(edit.getText())){ // EditText was empty ErrorFields.add(edit);//add empty Edittext only in this ArayList for(int i = 0; i < ErrorFields.size(); i++) { EditText currentField = ErrorFields.get(i); currentField.setError("this field required"); currentField.requestFocus(); } } } 

con este código corto puede eliminar el espacio vacío al inicio y al final de la cadena. Si la cadena es “”, devuelve el mensaje “error”, sino tienes una cadena

 EditText user = findViewById(R.id.user); userString = user.getText().toString().trim(); if (userString.matches("")) { Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show(); return; }else{ Toast.makeText(this, "Ok", Toast.LENGTH_SHORT).show(); }