用于键入许可证的EditText

时间:2011-11-28 08:39:22

标签: android android-edittext hint

在我的Android应用中,第一次运行应用时,用户必须输入许可证。许可证的格式为###-XXX-###-###,其中#是一个数字,X是一个字符。我把格式作为提示,但这还不够。我怎么能这样做,用户不输入 - ,它只出现在3个字符后?

更新:

这是我的代码并且有效:

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 个答案:

答案 0 :(得分:3)

在其中设置TextWatcher,将内联文本与regularExpression进行比较。并将其他代码放在前3个charachets后面附加“ - ”到intered characterSet。

答案 1 :(得分:1)

您可以使用4个EditTexts并将文字填充到它们 - 类似Windows的许可证输入

答案 2 :(得分: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