2013-07-25 7 views
6

, ama çalışmıyorKontrol Girilen değer bu pasajını denedim sayı veya olmasın

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!!!!!!!!!!!^^^"); 
} 
o değerini kontrol etmek adı veya kimliğini ya kabul edebilir

almak bakımı, Bilmiyorum sadece sayıları kabul etmek istiyorum!

cevap

6

seti EditText proprerty InputType = hep Gerçekten bu şekilde bir istisna kullanmak asla

android:inputType="number" 
+0

thnx ama ben kullanıcı –

0

Belki bir şey:

String text = enteredID.getText().toString(); 

    if(text.matches("\\w+")){ 
     //--words-- 
    }else if (text.matches("\\d+")){ 
     //--numeric-- 
    }else { 
     //-- something else -- 
    } 

değiştirebilirsiniz regex karmaşık biçimleri eşleşecek. Bu düzenli ifade ile

5

Dene:

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!!!!!!!!!!!^^^"); 
} 
11

Kullanım boole değeri doğrudur sadece

String regexStr = "^[0-9]*$"; 

if(et_number.getText().toString().trim().matches(regexStr)) 
{ 
    //write code here for success 
} 
else{ 
    // write code for failure 
} 
+0

İşleri excellent.Thanks yürütülecek kod her farklı parça için, sayı ve karakterleri hem girmek isteyen bir not yazdı. –

+0

Bu benim için çalışır, bir ondalık da izin vermeye çalışıyorum ve 33.8 gibi bir sayı kopyaladığımda, başarısız olur ... ondalık noktaya da izin vermek için regexStr'i nasıl güncellerim? –

+0

bu "^ [0-9] * $" dizgisini "^ [1-9] \ d * (\. \ D +)? $" –

0
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 

} 
5

ise validate numarası için bu ifade o zaman sayı aksi dize değeridir

boolean digitsOnly = TextUtils.isDigitsOnly(editText.getText()); 

veya f Sadece rakam ise veya Örnek

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(); 
       } 
      } 
1

kullanın o

TextUtils.isDigitsOnly("gifg"); 
için TextUtils sınıf işlevi

doğru dönecektir orada ve yanlış herhangi bir karakter dizesi içindeki

0
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"); 
} 
0

kullanımını bu yöntem varsa

boolean isNumber(String string) { 
try { 
    int amount = Integer.parseInt(string); 
    return true; 
} catch (Exception e) { 
    return false; 
} 

} böyle

:

if (isNumber(input)) { 
    // string is int 
}