iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用Android实现常见的验证码输入框
  • 885
分享到

如何使用Android实现常见的验证码输入框

android 2023-05-30 20:05:22 885人浏览 安东尼
摘要

小编给大家分享一下如何使用Android实现常见的验证码输入框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文先搂一眼效果吧不要把注意力都放在头顶的那一抹绿上,

小编给大家分享一下如何使用Android实现常见的验证码输入框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

正文

先搂一眼效果吧

如何使用Android实现常见的验证码输入框

不要把注意力都放在头顶的那一抹绿上,重点在输入框,可能大多数APP里都是采用6个方框的UI效果,我这里是按照我们设计的要求,用6根横线来划出6个数字的位置。一开始我想的是直接用6个TextView,然后传递焦点的做法,但是发现实现起来有一定的难度。又在网上查了一下,发现比较靠谱的办法是用6个TextView加一个EditText来实现,也按照这个方法去实现了,但是后来在测试的时候就发现了问题:网上给出的实现方式需要监听软键盘的删除按钮

editText.setOnKeyListener(new OnKeyListener() {   @Override   public boolean onKey(View v, int keyCode, KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_DEL      && event.getAction() == KeyEvent.ACTION_DOWN) {     //TODO:     return true;    }    return false;   }  });

这是一个大家熟知的写法,但是这个监听的方法其实并不靠谱(在安卓原生键盘上就监听不到),因为这个监听是否触发,并没有强制的要求,全看输入法开发者的心情,这是官方文档中的描述:

Key presses in software keyboards will generally NOT trigger this method, although some may elect to do so in some situations.

只能输入,不能删除,这可不行啊,用户肯定会骂娘的,我可不想被拿去去祭天什么的...

于是乎只能想办法在原有的基础上做一些修改,来规避这个问题,最后采用的方案是:采用一个TextView的数组来维护6个TextView,然后藏一个透明的EditTextView在后面用于接收用户输入的内容,再把输入的内容展示到6个TextView上就行了,UI什么的可以自己随意设计。在实现的过程中,遇到的一个关键问题就是:当输入的内容超过6位以后我该如何处理?一开始的方案是通过判断当前输入的位数然后再做相应的处理,网上的方案也是这么实现的,我后来一想,根本用不着这么麻烦,只需要一行属性就能解决这个问题:

android:maxLength="6"

只需要在EditText的属性里限制它的最大长度,就不用再去代码里做处理了,直接把EditTextView里的内容完全照搬到TextView上就可以了。

最终的完整代码如下:

public class VerifyCodeView extends RelativeLayout { private EditText editText; private TextView[] textViews; private static int MAX = 6; private String inputContent; public VerifyCodeView(Context context) {  this(context, null); } public VerifyCodeView(Context context, AttributeSet attrs) {  this(context, attrs, 0); } public VerifyCodeView(Context context, AttributeSet attrs, int defStyleAttr) {  super(context, attrs, defStyleAttr);  View.inflate(context, R.layout.view_verify_code, this);  textViews = new TextView[MAX];  textViews[0] = (TextView) findViewById(R.id.item_code_iv0);  textViews[1] = (TextView) findViewById(R.id.item_code_iv1);  textViews[2] = (TextView) findViewById(R.id.item_code_iv2);  textViews[3] = (TextView) findViewById(R.id.item_code_iv3);  textViews[4] = (TextView) findViewById(R.id.item_code_iv4);  textViews[5] = (TextView) findViewById(R.id.item_code_iv5);  editText = (EditText) findViewById(R.id.item_edittext);  editText.setCursorVisible(false);//隐藏光标  setEditTextListener(); } private void setEditTextListener() {  editText.addTextChangedListener(new TextWatcher() {   @Override   public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {   }   @Override   public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {   }   @Override   public void afterTextChanged(Editable editable) {    inputContent = editText.getText().toString();    if (inputCompleteListener != null) {     if (inputContent.length() >= MAX) {      inputCompleteListener.inputComplete();     } else {      inputCompleteListener.invalidContent();     }    }    for (int i = 0; i < MAX; i++) {     if (i < inputContent.length()) {      textViews[i].setText(String.valueOf(inputContent.charAt(i)));     } else {      textViews[i].setText("");     }    }   }  }); } private InputCompleteListener inputCompleteListener; public void setInputCompleteListener(InputCompleteListener inputCompleteListener) {  this.inputCompleteListener = inputCompleteListener; } public interface InputCompleteListener {  void inputComplete();  void invalidContent(); } public String getEditContent() {  return inputContent; }}

如果需要完整的demo,可以访问我的GitHubhttps://github.com/jb274585381/VerifyCodeViewDemo,当然大家也可以直接本地下载。

以上是“如何使用Android实现常见的验证码输入框”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何使用Android实现常见的验证码输入框

本文链接: https://www.lsjlt.com/news/221163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Android实现常见的验证码输入框
    小编给大家分享一下如何使用Android实现常见的验证码输入框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正文先搂一眼效果吧不要把注意力都放在头顶的那一抹绿上,...
    99+
    2023-05-30
    android
  • Android实现短信验证码输入框
    本文实例为大家分享了Android实现短信验证码输入框的具体代码,供大家参考,具体内容如下 其实用官方自定的那个inputEditText默认带下划线的,然后自己再实行焦点和输入框...
    99+
    2022-11-12
  • uniapp手机验证码输入框如何实现
    本篇内容主要讲解“uniapp手机验证码输入框如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“uniapp手机验证码输入框如何实现”吧!如键盘被隐藏,可直接点击蓝框弹出键盘,蓝框就相当于i...
    99+
    2023-07-05
  • Android实现自定义验证码输入框效果(实例代码)
    这里提一下,这个当时也是在网上看到一个博主写的代码改了下用在我么项目中的验证码输入框。博主的地址不记得了这里只能顺带标注一下。。。 效果图如下: 就是这个酱紫 直入主题,代码...
    99+
    2022-06-06
    自定义 输入 验证码 输入框 Android
  • Android自定义验证码输入框的方法实例
    目录实践过程总结实践过程 前面我们学完了EditText和TextView两个组件,但是,光学不练没意思。 所以今天我们趁热打铁,利用两个组件实现个自定义验证码输入框。 思路前瞻:...
    99+
    2022-11-13
  • Flutter验证码输入框的2种方法实现
    目录重点是什么?从头开始制作 OTP 字段使用第三个包结论本文向您展示了在 Flutter 中实现完美的验证码输入框几种不同方法。 重点是什么? 真实世界的 完美的验证码输入框或 P...
    99+
    2022-11-12
  • Flutter验证码输入框的实现方法有哪些
    Flutter验证码输入框的实现方法有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。重点是什么?真实世界的 完美的验证码输入框或 PIN 输入 UI 通常满...
    99+
    2023-06-22
  • Angular如何使用输入框实现自定义验证功能
    这篇文章将为大家详细讲解有关Angular如何使用输入框实现自定义验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此插件使用angular.js、JQuery实现。...
    99+
    2022-10-19
  • 如何实现Android手机号码输入框
    这篇文章给大家分享的是有关如何实现Android手机号码输入框的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示:package com.jixiong.teen.view;import&n...
    99+
    2023-05-30
    android
  • Qt实现自定义验证码输入框控件的方法
    目录前言UI布局:页面样式初始化:功能实现:前言 本文实现了自定义的验证码输入框控件。控件包括图标、输入框、获取验证码按钮、验证码获取倒计时标签。支持鼠标点击获取验证码按钮后开始显示...
    99+
    2022-11-13
  • 使用request实现手工输入验证码登录
    我们的目标网站是这个http://awehome.com.cn,登录页面是这个http://awehome.com.cn/tenant/login import requests import json url = 'http://a...
    99+
    2023-01-30
    验证码 手工 request
  • php如何实现用户输入验证
    这篇文章主要介绍php如何实现用户输入验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用...
    99+
    2022-10-19
  • 微信小程序如何实现6位或多位验证码密码输入框功能
    小编给大家分享一下微信小程序如何实现6位或多位验证码密码输入框功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、效果图如下:...
    99+
    2022-10-19
  • angular如何实现表单验证器验证的同时限制输入
    小编给大家分享一下angular如何实现表单验证器验证的同时限制输入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!angular...
    99+
    2022-10-19
  • 如何使用Python实现极验验证码识别验证码
    这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
    99+
    2023-07-05
  • jQuery+Ajax如何实现显示对号和错号用于验证输入验证码是否正确
    小编给大家分享一下jQuery+Ajax如何实现显示对号和错号用于验证输入验证码是否正确,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一...
    99+
    2022-10-19
  • Android使用Activity实现简单的可输入对话框
    1、需求分析众所周知,在应用中这样那样的评论总是少不了的,有的应用是在底部直接加一个EditText和一个Button,让用户输入文字或者表情之后点击按钮提交;而有的虽然也放置了EditText,但仅仅是一个“摆设”,并不具备输入功能,用户...
    99+
    2023-05-30
    android activity 输入对话框
  • SpringBoot如何使用Kaptcha实现验证码的生成与验证功能
    本篇内容主要讲解“SpringBoot如何使用Kaptcha实现验证码的生成与验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot如何使用Kaptcha实现验证码的生成与验...
    99+
    2023-07-05
  • Android 使用fast-verification实现验证码填写功能的实例代码
    fast-verification 验证码的验证环节现在是移动APP中不可缺少的一部分,直接使用EditText组件虽然方便但缺少了一些美感,使用fast-verificati...
    99+
    2022-06-06
    验证码 fast Android
  • jQuery如何实现输入框密码的显示隐藏
    这篇文章主要为大家展示了“jQuery如何实现输入框密码的显示隐藏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现输入框密码的显示隐藏”这篇文...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作