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!

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"); } 
  • Números aleatorios en Java cuando se trabaja con Android
  • ¿Cómo pasar entero de una actividad a otra?
  • Compruebe si el valor entero ha aumentado?
  • Establecer texto en valor entero
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.