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:
- Validación nula en el cuadro EditarTexto de Alert Dialog - Android
- Cómo validar String usando expresión regular en java
- Android: ¿Cómo establecer números y caracteres aceptables en EditText?
- Android manual X509 validación de la cadena de certificados
- ¿Cómo determinar si una entrada en EditText es un entero?
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
.
- Cómo cambiar la contraseña usando la contraseña antigua en el análisis de android
- Validación en EditText permitir IP o web Url host
- Permitir sólo charcters seleccionados basados en regex en un EditText
- Centrarse en segundo edittext sólo si primero es no-vacío android
- Añadir una anotación personalizada a Android Saripaar
- RxJava- validación de formulario RxAndroid en dynamic EditText
- ¿Cuál es una buena manera de limitar el número de palabras que se pueden introducir en una vista de edición de Android?
- ¿Cómo validar los valores de TextInput en reaccionar nativo?
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; }
- No se puede encontrar el método getPackageManager () en android
- Cómo configurar gradle para trabajar "offline" (usando dependencias almacenadas en caché)