Android - 如何触发编辑文本字段的验证

发布于 2024-11-06 14:38:08 字数 255 浏览 2 评论 0原文

我需要实现一个编辑文本字段,只允许用户输入 20 到 60 之间的数字。如果用户输入的数字超出范围,将显示一个对话框并强制用户再次输入。

因此文本观察器没有用,因为它无法阻止用户输入低于 20 的数字。

onFocusChangedListener 也不是,如果用户单击“完成”按钮,edittext 不会失去焦点,因此触发器不会触发出色地。

此外,编辑文本位于选项卡视图内,因此当用户单击另一个选项卡时,触发器会触发,但用户无法再为该编辑文本输入值。

I need to implement an edittext field that just allows user input from 20 to 60. If user input a number that is out of range, a dialog will display and force user to input again.

So the text watcher is not useful because it cannot prevent user input a number that lower than 20.

The onFocusChangedListener is neither, if user clicks on 'done' button, the edittext doesn't lost focus, so the trigger doesn't fire as well.

Besides, the edittext is inside a tab view, so when user clicks on another tab, the trigger fires but user cannot input value for that edittext any more.

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

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

发布评论

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

评论(3

北音执念 2024-11-13 14:38:08

阿尔文是对的......这是我的代码,用于在输入后对文本执行某些操作,但也可以很容易地成为验证序列:

smsMsgBody_editText.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // Do something fancy
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
    public void afterTextChanged(Editable s) { }
});

Alvin is right ... this is my code to do something with text once entered, but could have as easily been a validation sequence:

smsMsgBody_editText.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // Do something fancy
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
    public void afterTextChanged(Editable s) { }
});
烈酒灼喉 2024-11-13 14:38:08

使用 onTextChanged 跟踪 EditText 字段怎么样?

How about keeping track of the EditText field with onTextChanged?

千鲤 2024-11-13 14:38:08

使用这些

android:maxLength="2" android:numeric="integer"

,然后当你得到像这样的数字: number.gettext() 时,你会进行验证,如果 number>60 且低于 20,你可以执行 number.setHint("number no valid");

use these

android:maxLength="2" android:numeric="integer"

then when you get the number like: number.gettext() you make validations like if number>60 and lower then 20 you can do number.setHint("number no valid");

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