Compruebe que el valor ingresado es el número o no
He intentado este fragmento, pero no funciona
try { Integer.parseInt(enteredID.getText().toString()); Log.i("enteredID value", "enterdID is numeric!!!!!!!!!!!^^^"); flag=1; } catch (NumberFormatException e) { flag=-1; Log.i("enteredID value", "enterdID isn't numeric!!!!!!!!!!!^^^"); }
Tener cuidado de que puede aceptar nombre de usuario o ID para comprobar el valor, no quiero que acepte sólo los números!
- obtener el valor entero de EditText Android
- Insertar comas en enteros
- Recurso Android de tipo largo
- Conversión de una cadena en un entero en Android
- Cómo convertir doble int en Android?
- Android dos enteros con el mismo valor que no iguala correctamente
- Error: Error: Los tipos enteros no están permitidos (en 'layout_height' con el valor '10')
- ¿Cómo validar edittext con números enteros en android?
- ArrayList <Integer> con el método get / remove
- Impedir que edittext esté vacío
- Cómo obtener el valor entero de res / integers.xml?
- Cómo convertir valores de cadena a lista de matriz de entero - Android
- Android - ¿Cómo tomar un EditText (números) y luego convertirlo a un número entero para usarlo para las matemáticas?
Utilice esta expresión sólo para validar el número
String regexStr = "^[0-9]*$"; if(et_number.getText().toString().trim().matches(regexStr)) { //write code here for success } else{ // write code for failure }
Set EditText proprerty inputType = número siempre tomará números como entrada
android:inputType="number"
Pruebe con esta expresión regular:
String regex = "-?\\d+(\\.\\d+)?"; if (enteredID.getText().toString().matches(regex)) { Log.i("enteredID value", "enterdID is numeric!!!!!!!!!!!^^^"); flag=1; } else { flag=-1; Log.i("enteredID value", "enterdID isn't numeric!!!!!!!!!!!^^^"); }
Si el valor booleano es verdadero entonces es el número de otro valor de la cadena
boolean digitsOnly = TextUtils.isDigitsOnly(editText.getText());
O por ejemplo
String text = edt_email.getText().toString(); boolean digitsOnly = TextUtils.isDigitsOnly(text); if (digitsOnly) { if (text.length() == 0) { Toast.makeText(getApplicationContext(), "field can't be empty.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "field is int value", Toast.LENGTH_LONG).show(); } }else { Toast.makeText(getApplicationContext(), "Field is string value", Toast.LENGTH_LONG).show(); } }
Usted nunca debe usar una excepción de esta manera realmente. Cuando espera que se lance una excepción como esta, debe encontrar una forma alternativa de manejarla.
Intente usar: http://developer.android.com/reference/android/widget/TextView.html#setRawInputType%28int%29
Algo como esto debe hacerlo:
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
Tal vez algo como esto:
String text = enteredID.getText().toString(); if(text.matches("\\w+")){ //--words-- }else if (text.matches("\\d+")){ //--numeric-- }else { //-- something else -- }
Puede cambiar el regex para que coincida con los formatos complejos.
Pattern ptrn = Pattern.compile(regexStr); if (!ptrn.matcher(et_number.getText().toString().trim()).matches()) { //write code here for success }else{ //write code here for success }
Utilice la función de clase TextUtils
para
TextUtils.isDigitsOnly("gifg");
Devolverá true si sólo hay dígitos y false si existe algún carácter dentro de la cadena
String text = editText123.getText().toString(); try { int num = Integer.parseInt(text); Log.i("",num+" is a number"); } catch (NumberFormatException e) { Log.i("",text+" is not a number"); }