在Android中验证edittext

时间:2011-05-16 04:18:33

标签: android android-edittext

我是android和amp;的新手我正在尝试为项目编写应用程序。

我需要检查用户是否在edittext中输入了7个数字后跟一个字母。 示例:0000000x

我该怎么做? TIA! :)

3 个答案:

答案 0 :(得分:6)

可能最好的方法是使用传递给EditText的TextWatcher方法的addTextChangedListener()。以下是一个使用示例:

editText.addTextChangedListener(new TextWatcher() {
  @Override
  public void afterTextChanged(Editable e) {
    String textFromEditView = e.toString();
    validateText(textFromEditView);
  }

  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    //nothing needed here...
  }

  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
    //nothing needed here...
  }
});

我会将validateText(String)方法的实现作为读者的练习,但我想它应该很容易。我会使用:

  1. 一个简单的正则表达式。
  2. 或者因为这种情况很容易,检查字符串的长度是8,并查看每个字符。有一个简单的实用程序类来检查字符的特征。 Character.isDigit(char)Character.isLetter(char)

答案 1 :(得分:0)

OnKeyListener侦听视图中的每个键击。您可以使用它来检查用户是否输入了他想要的内容。

例如:如果输入的字符数为7则为

检查它是否遵循reqd表达式格式。

答案 2 :(得分:0)

在Android中有一个名为Pattern的类,你可以给正则表达式匹配你的需求尝试这个下面的代码,我认为它可以工作

模式p = Pattern.compile(“{7}”);         Matcher m = p.matcher(String.valueOf(edittext));

只有当文本框中有7个字符然后你可以使用一些像“Character.isDigit(char)和Character.isLetter(char)”这样的menthod时才会出现这种情况。