当前位置: 首页 > 面试题库 >

最佳实践:输入验证(Android)

卫建义
2023-03-14
问题内容

我是android移动开发的新手(Android Studio本机开发-
新知识)。在这里,我想问一个有关输入验证最佳实践的问题。据我们所知,开发人员何时开发输入表单。我们需要防止用户在文本字段中输入错误的内容。所以这是我的问题

  1. 我们可以只为验证目的创建一个Java文件吗?所有输入形式,都只能转到一个验证文件(如果一个应用中有许多输入页面屏幕)。如果 ,如何才能得到该技术为我学习学习的模范/连接/教程。如果 ,为什么?

从我个人的角度来看,它应该有一种实现该技术的方法。这样我们就不必为每个java文件重新使用相同的代码(就干净代码而言)。不幸的是,我没有找到任何示例或教程。也许我搜索了错误的关键字或误读了。如果没有这样的技术,那么输入验证的最佳实践是什么?

谢谢。

p / s:此线程用于在最佳实践中找到更好的方法。谢谢。


问题答案:

此类java类实现了TextWatcher“监视”您的编辑文本,监视对文本所做的任何更改:

public abstract class TextValidator implements TextWatcher {
    private final TextView textView;

    public TextValidator(TextView textView) {
        this.textView = textView;
    }

    public abstract void validate(TextView textView, String text);

    @Override
    final public void afterTextChanged(Editable s) {
        String text = textView.getText().toString();
        validate(textView, text);
    }

    @Override
    final public void 
    beforeTextChanged(CharSequence s, int start, int count, int after) {
         /* Needs to be implemented, but we are not using it. */ 
    }

    @Override
    final public void 
    onTextChanged(CharSequence s, int start, int before, int count) { 
         /* Needs to be implemented, but we are not using it. */    
    }
}

在您的中EditText,您可以将该文本查看器设置为其监听器

editText.addTextChangedListener(new TextValidator(editText) {
    @Override public void validate(TextView textView, String text) {
       /* Insert your validation rules here */
    }
});


 类似资料:
  • 为了将视图(Ember应用程序)与服务器(Rails应用程序)完全分开,我希望使用令牌身份验证。我可能会在Rails服务器上使用Devise。 在Ember应用程序中,我需要类似于before_filter的东西,在这里我可以检查是否有当前用户,以及该用户是否有身份验证令牌集。 Rails服务器将在每次调用时返回当前auth令牌。如果返回空auth令牌,Ember应用程序应该检测到这一点,并转换到

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给

  • 本章文档将阐述一些使用herosphp开发一些常用模块的一些比较好的实践。 未完待续。。。