在 Android 中验证编辑文本
我是 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最好的方法可能是使用 TextWatcher 传递到 addTextChangedListener() 方法的编辑文本。下面是一个示例用法:
我将把
validateText(String)
方法的实现留给读者作为练习,但我想它应该足够简单。我会使用:Probably the best approach would be to use a TextWatcher passed into the addTextChangedListener() method of the EditText. Here is an example use:
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: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.
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)"