2016-11-09 33 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 #");     } 
       } 
      });