2011-11-28 66 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