2015-11-24 9 views
1

В моем edittext мне нужно проверить, введен ли только ноль. Например, у меня есть edittext для ввода кода IFSc для Банка. Он принимает только буквы и цифры. Поэтому, если предположить, что пользователь вводит ноль только для 14 символов. Мне нужно проверить. Одно решение, которое я нашел, - это сокрытие строки в целое число и добавление вместе, независимо от того, является ли оно нулевым, означает, что пользователь вводит zer только для того, что я написал код, но он не работает. Может кто-нибудь помочь мне в этой проблеме.Android Edittext имеет только нулевую запись

int ifno = Integer.parseInt(ifsc); 
int sum = 0; 

while (ifno == 0) 
{ 
    sum = sum + ifno % 10; 
    ifno = ifno/10; 
} 

if(sum == 0) 
{ 
    Toast.makeText(Neft_Details.this, "Not a valid IFSC Code", Toast.LENGTH_LONG).show(); 
} 
+1

Какая у вас ошибка? –

+1

Вы можете использовать 'Pattern Matcher' для вашего требования – MilapTank

+0

http://www.dotnetfunda.com/forums/show/16409/regular-expression-for-ifsc-code – MilapTank

ответ

0

я сделать очень простой пример для вас, и это работает:

EditText info; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 

    info = (EditText)findViewById(R.id.infoNum); 

    Button okButton = (Button)findViewById(R.id.okBtn); 
    okButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      int infoINt = Integer.parseInt(info.getText().toString()); 
      if(infoINt == 0){ 
       Toast.makeText(getBaseContext(),"Not a valid IFSC Code",Toast.LENGTH_LONG).show(); 
      }else{ 
       // do your true logic here 
      } 

     } 
    }); 

} 

Может быть ошибка в вашей логической области.

использованием ValidationExpression также отлично работает

0

Попробуйте использовать метод valueOf() в Integer. Ниже приведен пример, чтобы узнать точное значение данной строки.

String value = "000000"; 
    value = Integer.valueOf(value).toString(); 
    System.out.println("result for check: "+value); 

Output: 
0 

Надеется, что это поможет вам

1

Я думаю, что вам нужно изменить ваш while цикл попробовать это ..

String ifsc = "00000000000000"; 
int ifno = Integer.parseInt(ifsc); 
int sum = 0;    
    while (ifno != 0){ 
      ifno = ifno/10; 
      sum = sum + ifno; 
    } 
    if(sum == 0){ 
     Toast.makeText(Neft_Details.this, "Not a valid IFSC Code", Toast.LENGTH_LONG).show(); 
     // System.out.println("Invalid value"); 
    } 
+0

СООТВЕТСТВУЕТ, ЧТО ЕСТЬ ТОЛЬКО ДВУХ НУЛЕРА ... ЧТО ПРОИСХОДИТ. – roshanpeter

+0

все равно будет оценивать всю свою ценность. Я просто хочу проверить ... – Mohit

0

Ну еще один способ сделать это, вы можете попытаться определить такую ​​тестовую функцию в вашем коде.

public static boolean isAllZeros(String text) { 
    char zero = '0'; 
    for (int i=0; i<text.length()-1; i++) { 
     if (!(text.charAt(i) == zero)) { 
      return false; 
     } 
    } 
    return true; 
} 

Затем проверьте свою строку, введенную в EditText, перейдя к этой функции. Таким образом, вы можете избежать разбора его на целое число, и вы можете напрямую проверить введенную строку.

if(Test.isAllzeros(editextString)) { 
    Toast.makeText(Neft_Details.this, "Not a valid IFSC Code", 
    Toast.LENGTH_LONG).show();  
} else { 
    // Do whatever you want in here. 
}