2011-11-28 67 views
1

在我的android應用程序中,第一次運行應用程序時,用戶必須鍵入許可證。許可證的格式是###-XXX-###-###其中#是一個數字,X是一個字符。我把這個格式作爲提示,但這還不夠。我怎麼能這樣做,用戶沒有輸入 - ,它只出現在3個字符後?用於輸入許可證的EditText

UPDATE:

這是我的代碼,它的工作原理:

licenseEditText.addTextChangedListener(new TextWatcher() { 

      public void afterTextChanged(Editable s) { 
       System.out.println("afterTextChanged"); 
       if (s.length() == 3) { 
        s.append("-"); 
       } 
       if (s.length() == 7) { 
        s.append("-"); 
       } 
       if (s.length() == 11) { 
        s.append("-"); 
       } 
       if (s.length() == 15) 
        ok.performClick(); 
      } 

      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
       System.out.println("beforeTextChanged"); 
      } 

      public void onTextChanged(CharSequence s, int start, int before, 
        int count) { 
       System.out.println("onTextChanges"); 

      } 
     }); 

回答

3

設置TextWatcher,裏面比較採訪了文本與regularExpression。並放置其他代碼,如前3個charachets將「 - 」添加到intered字符集。

+0

你可以請舉一個工作的例子 – ingsaurabh

+0

@ Shailendra一個例子將是有益的:) – Gabrielle

+0

其自己的想法,所以不能導航你到任何網址。我從不喜歡爲其他人編寫完整的代碼。謝謝 –

1

可以使用4個EditTexts並附textwathers他們 - 一個像Windows的許可證輸入

0

嘗試使用%操作

if(s.length() == 15) { 
    // s.length() = 15 
} else if(s.length() % 4 == 3) { 
    // s.length = {3, 7, 11, 19, ....} 
    // so s.length != 15 
} 

這樣,你有更少的代碼重複。欲瞭解更多信息檢查:Wikipedia - Modulo operation