在 Android 中验证编辑文本

发布于 2024-11-07 18:12:31 字数 113 浏览 0 评论 0原文

我是 android 新手我正在尝试为一个项目编写一个应用程序。

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

我该怎么做?蒂亚! :)

I'm new to android & I'm trying to write an application for a project.

I need to check whether the user has entered 7 numbers followed by one alphabet in edittext.
Example: 0000000x

How should I do that? TIA! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枯寂 2024-11-14 18:12:31

最好的方法可能是使用 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)

Probably the best approach would be to use a TextWatcher passed into the addTextChangedListener() method of the EditText. Here is an example use:

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...
  }
});

I will leave the implementation of the validateText(String) method as an exercise for the reader, but I imagine it should be easy enough. I would either use:

  1. A simple Regular Expression.
  2. Or since this case is easy enough, checking that the length of the string is 8, and reviewing each character. There is a simple utility class to inspect the characteristics of characters. Character.isDigit(char) and Character.isLetter(char)
玩套路吗 2024-11-14 18:12:31

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

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

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

OnKeyListener listens to every key stroke in the view. you can use that to check whether the user has entered what he is supposed.

eg : if the no of char entered is 7 then

check if it follows the reqd expression format.

忘年祭陌 2024-11-14 18:12:31

Android 中有一个名为 Pattern 的类,您可以提供正则表达式来匹配您的要求,尝试以下代码,我认为它可能有效

Pattern p = Pattern.compile( "{7}" );
匹配器 m = p.matcher(String.valueOf(edittext));

仅当文本框中有 7 个字符时才成立,然后您可以使用一些方法,例如“Character.isDigit(char) 和 Character.isLetter(char)”

There is a Class called Pattern in Android in that you can give Regular Expression to match your Requirements try this follwoing code i think it may work

Pattern p = Pattern.compile( "{7}" );
Matcher m = p.matcher(String.valueOf(edittext));

This will be true only if 7 characters are there in the Text box and then you can use some menthods like "Character.isDigit(char) and Character.isLetter(char)"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文