EditText campo es necesario antes de pasar a otra actividad

Tengo validación para editText . Si el campo editText está vacío, debe fallar la validación y detener el paso del usuario a otra Activity , ya que se requiere un valor. ¿Cómo hacerlo? Sé que esta es una pregunta básica, pero no puedo averiguar cómo hacerlo.

Mi código:

 btninsert = (Button)findViewById(R.id.btn_insert); btninsert.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { insertValues(); EditText userName = (EditText) findViewById(R.id.editText1); if( userName.getText().toString().length() == 0 ) userName.setError( "First name is required!" ); Intent i = new Intent(getApplicationContext(), Login.class); startActivity(i); } }); 

Cuando se hace clic en este Button el usuario redirigirá a la siguiente pantalla, pero necesito que si la validación falla permanecen en la Activity actual y sólo cuando la validación es correcta (es decir, se ha ingresado un valor) van a la siguiente Activity .

Puede hacerlo de esta manera … Quite su If condition y reemplace esto.

 if( userName.getText().toString().trim().equals("")){ /** * You can Toast a message here that the Username is Empty **/ userName.setError( "First name is required!" ); }else{ Intent i = new Intent(getApplicationContext(), Login.class); startActivity(i); } 

Prueba esto:

 bt.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { String str=et.getText().toString(); if(str.equalsIgnoreCase("")) { et.setHint("please enter username");//it gives user to hint et.setError("please enter username");//it gives user to info message //use any one // } else { Intent in=new Intent(getApplicationContext(),second.class); startActivity(in); } } }); 

También puede probar esto:

  if ( ( userName.getText().toString().trim().equals("")) ) { Toast.makeText(getApplicationContext(), "User name is empty", Toast.LENGTH_SHORT).show(); } else { Intent i = new Intent(getApplicationContext(), Login.class); startActivity(i); } 

Mejor probar textField vacío usando la condición If para todos los casos de validación requeridos o especiales y setError para enfocar.

 If(txtName.getText().toString().trim().equals("")) { //Your message or any other validation } 

Me enfrenté a un problema similar. En mi caso, tenía un montón de Edittexts para verificar, algunos de ellos era hijo de otros diseños. Sugerencia: todas las vistas deben estar en la misma vista de raíz. Por lo tanto, para ser simple:

 ... LinearLayout viewGroup = (LinearLayout) findViewById(R.id.viewGroup); checkFieldsRequired(viewGroup); ... public boolean checkFieldsRequired(ViewGroup viewGroup){ int count = viewGroup.getChildCount(); for (int i = 0; i < count; i++) { View view = viewGroup.getChildAt(i); if (view instanceof ViewGroup) checkFieldsRequired((ViewGroup) view); else if (view instanceof EditText) { EditText edittext = (EditText) view; if (edittext.getText().toString().trim().equals("")) { edittext.setError("Required!"); } } } return false; } 
  • Cómo restringir el tiempo de entrada para edittext en android
  • Validación de correo electrónico en EditText - Android
  • ¿Cómo puedo verificar que la imagen URI es válida en Android?
  • Validar "desde fecha" y "hasta la fecha" en android
  • ¿Cómo verificar la tarjeta PAN?
  • ¿Cómo validar edittext con números enteros en android?
  • Cómo convertir InputStream en origen?
  • Entrada de archivo HTML en Chrome para Android falta extensión y tipo mime
  • Cómo validar un nombre de URL / sitio web en EditText en Android?
  • Android MVP dudas sobre la validación
  • Mostrar error si el usuario introduce sólo espacios en EditText - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.