2016-11-09 10 views
4

どのように私は親切に私を助けていくつかのコードを入れてここチェックバランスのためのUSSDコードを検証する方法

を送信する前のEditTextに入力されたUSSDコードを検証することができます。

ussd_edittext.addTextChangedListener(new TextWatcher() 
{ 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
       ussd_edittext.setError("Invalid password"); 
       ussd_ok.setEnabled(false); 
      } 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

       if (ussd_edittext.getText().toString().trim().replaceAll("[^0-9#*]", "").length() < 4) { 
        ussd_edittext.setError("USSD code must contain * and #"); 
        ussd_ok.setEnabled(false); 
       } 
      } 
      public void afterTextChanged(Editable s) { 
       Character cr = s.toString().charAt(0); 
       if(s.length() < 1) 
       { 
        if(!((cr == '*'))) 
        { ussd_edittext.setError("USSD code must contain * and #"); 
         ussd_ok.setEnabled(false); 
        } 
        else { 
         ussd_ok.setEnabled(true); 
        } 
       } 
       else 
       { 
        String lc = s.toString().substring(0, ussd_edittext.length() - 1); 
        if(!((cr == '*') && lc.equals("#"))) 
        { 
         ussd_edittext.setError("USSD code must contain * and #"); 
         ussd_ok.setEnabled(false); 
        } 
        else { 
         ussd_ok.setEnabled(true); 
        } 
       } 
      } 
     }); 

*と#も含まれている必要があるように検証したいと思う5桁が最小です。

答えて

0

これは役立つかもしれない:

if (Pattern.matches("(\\*[0-9]+[\\*[0-9]+]*#)", ussd_edittext.getText().toString()) && ussd_edittext.length() >= 5) { 
     //USSD code is valid 
    } else { 
     //USSD code is not valid 
    } 
0

私はこのような何かを行っていました。

ussd_edittext.addTextChangedListener(new TextWatcher() 
{ 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
        ussd_edittext.setError("Invalid password"); 
        ussd_ok.setEnabled(false); 
       } 
       public void onTextChanged(CharSequence s, int start, int before, int count) {  
        if (ussd_edittext.getText().toString().trim().length() < 4 && (! t.contains(""+ussd_edittext))) { 
         ussd_edittext.setError("USSD code must contain * and #"); 
         ussd_ok.setEnabled(false); 
        } 
       } 

       @Override 
       public void afterTextChanged(Editable s) 
       { 
        if (ussd_edittext.getText().toString().trim().length() > 4) 
        { 
         Character fc = ussd_edittext.getText().toString().charAt(0);  
         String lc = ussd_edittext.getText().toString().substring(ussd_edittext.length() - 1); 
         if(!((fc == '*') && lc.equals("#"))) 
         { 
          ussd_edittext.setError("USSD code must contain * and #"); 
          ussd_edittext.requestFocus(); 
         } 
         else 
         {      ussd_ok.setEnabled(true);    } 
        } 
        else 
        {      ussd_edittext.setError("USSD code must contain * and #");     } 
       } 
      }); 
関連する問題