android方块密码输入框,Android仿微信/支付宝的方块密码输入框

在用到支付类或者验证类app时,都有一个简密的输入框。百度了下有个不错的帖子点击打开链接

不过自己也写了个简单的类似的。不废话了。没图说个席八。

0818b9ca8b590ca3270a3433284dd417.png

懒得运行,直接截layout.xml的效果图先。

布局文件

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="#ffffff"

android:paddingBottom="20dp"

android:paddingTop="30dp" >

android:id="@+id/txtTitle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:text="请输入验证码"

android:textStyle="bold"

android:textSize="22sp" />

android:id="@+id/layout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/txtTitle"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:orientation="horizontal" >

android:id="@+id/t1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/i1"

android:gravity="center"

android:inputType="number"

android:lines="1"

android:maxLines="1" />

android:id="@+id/t2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/i1"

android:gravity="center"

android:inputType="number"

android:lines="1"

android:maxLines="1" />

android:id="@+id/t3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/i1"

android:gravity="center"

android:inputType="number"

android:lines="1"

android:maxLines="1" />

android:id="@+id/t4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/i2"

android:gravity="center"

android:inputType="number"

android:lines="1"

android:maxLines="1" />

android:id="@+id/editHide"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBottom="@+id/layout"

android:layout_alignLeft="@+id/layout"

android:layout_alignRight="@+id/layout"

android:layout_alignTop="@+id/layout"

android:layout_weight="1"

android:background="#00000000"

android:cursorVisible="false"

android:ems="10"

android:inputType="number"

android:maxLength="4"

android:textColor="#00000000" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/layout"

android:layout_centerHorizontal="true"

android:layout_marginTop="20dp" >

android:id="@+id/verifycode_ok"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="#fa8d70"

android:layout_marginRight="30dp"

android:textColor="#ffffff"

android:text="确定" />

android:id="@+id/verifycode_cancel"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="30dp"

android:background="@color/index_time_but"

android:textColor="#ffffff"

android:text="取消" />

代码:

import android.app.Activity;

import android.os.Bundle;

import android.text.Editable;

import android.text.TextWatcher;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends Activity {

TextView t1, t2, t3, t4, et;

String key = "";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.verifycode);

t1 = (TextView) findViewById(R.id.t1);

t2 = (TextView) findViewById(R.id.t2);

t3 = (TextView) findViewById(R.id.t3);

t4 = (TextView) findViewById(R.id.t4);

et = (EditText) findViewById(R.id.editText1);

et.addTextChangedListener(tw);

}

void setKey() {

char[] arr = key.toCharArray();

t1.setText("");

t2.setText("");

t3.setText("");

t4.setText("");

for (int i = 0; i < arr.length; i++) {

if (i == 0) {

t1.setText(String.valueOf(arr[0]));

} else if (i == 1) {

t2.setText(String.valueOf(arr[1]));

} else if (i == 2) {

t3.setText(String.valueOf(arr[2]));

} else if (i == 3) {

t4.setText(String.valueOf(arr[3]));

}

}

}

TextWatcher tw = new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

}

@Override

public void afterTextChanged(Editable s) {

key = s.toString();

setKey();

}

};

}

好哒。就这样了。运行就有效果了。没有什么自定义,没有什么第三方。

当然。如果你要弹窗形式的话,也一样,加下面的就能弹窗了

final AlertDialog dialog = new AlertDialog.Builder(mContext).create();

dialog.show();

dialog.getWindow().setContentView(R.layout.verifycode);t1 = (TextView) dialog.findViewById(R.id.t1);

t2 = (TextView) dialog.findViewById(R.id.t2);

t3 = (TextView) dialog.findViewById(R.id.t3);

t4 = (TextView) dialog.findViewById(R.id.t4); 后期有时间再补上项目DOME。下班。走人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

童鞋,[HttpClient发送文件的技术实践]请查收

昨天有童鞋在群里面问&#xff1a;怎么使用HttpClient发送文件&#xff1f;01荒腔走板之前我写了一个《ABP小试牛刀之上传文件》&#xff0c;主要体现的是服务端&#xff0c;上传文件的动作是由前端小姐姐完成的&#xff0c; 我还真没有用HttpClient编程方式发送过文件。不过Ht…

elasticsearch2.2之javaApi

2019独角兽企业重金招聘Python工程师标准>>> 前言&#xff1a;elasticsearch虽然自带rest接口&#xff0c;但是在真正使用过程中可能更多的是通过不同编程语言的客户端进行交互。 因为代码里有或多或少的注释&#xff0c;所以直接贴代码&#xff1a; package elasti…

《程序员的职业素养》读书笔记

书籍地址&#xff1a;http://book.douban.com/subject/11614538/ 一句话点评该书&#xff1a;Bob大叔的职业生涯经验总结&#xff0c;现身说法&#xff0c;可信可敬&#xff01; &#xff08;一&#xff09;专业主义 &#xff08;1&#xff09;“专业主义”就意味着担当责…

html 转义反斜杠字符串,JS中处理单个反斜杠(即转义字符的处理)

问题来源&#xff1a;在表单的标签中对输入的字符串进行大写转换。一不小心输入了反斜杠 \如下图所示&#xff1a;输入 chn\ 的时候&#xff0c;在 IE8 下弹出一个js错误。(在实际的项目的表单元素中遇到了&#xff0c;单独这样拿出来测试的时候又不弹出错误。也很是焦灼)索…

C# 值得永久收藏的WPF项目实战(经典)

01—简介之前也写过好多篇CM框架相关的项目实战文章&#xff0c;比如&#xff1a;C# WPF框架Caliburn.Micro快速搭建C# WPF框架Caliburn.Micro入门实例1C# WPF MVVM项目实战(进阶①)C# WPF MVVM项目实战(进阶②)C# WPF MVVM模式下在主窗体显示子窗体并获取结果C# WPF Caliburn.…

InfoQ十周年:不忘初心,继续前行

我们都知道&#xff1a;软件正在改变世界&#xff0c;也已经看到了在加快这种变化时&#xff0c;于软件世界中我们的影响力。在这种热情下&#xff0c;10年前我们带着一些不寻常的信念与情怀创建了InfoQ&#xff1a;\\\\t我们相信&#xff1a;这个社区需要的内容是开发者所撰写…

Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信

因为单位网络管理的原因&#xff0c;不太方便使用 Virtualbox 的Bridge Adapter 模式&#xff0c;故此欲采用NAT模式&#xff0c;不对外不暴露虚拟机IP。 但是此时会有一个问题&#xff1a;采用NAT模式后&#xff0c;在通常情况下&#xff0c; 从外面看&#xff0c;或者从物理机…

亚马逊 html代码转换,亚马逊七种产品描述常用HTML代码,文字颜色代码让Listing更出彩...

排版风格和排版水平对于亚马逊Listing的运营至关重要。虽说亚马逊以产品为王&#xff0c;但如果消费者打开的是一篇毫无美感的排版&#xff0c;视觉体验不舒服&#xff0c;获取不到吸引他的卖点&#xff0c;转化率将大大降低&#xff01;没使用HTML代码的卖家&#xff0c;产品描…

java 文件上传至oracle blob字段 实现

2019独角兽企业重金招聘Python工程师标准>>> 指定文件夹下的所有文件上传至oracle的blob字段&#xff0c;java实现 package com.huth;import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileInputStream; i…

中国这门失传已久的武林绝学,竟让研究它的老外拿了诺贝尔奖

全世界只有3.14 % 的人关注了爆炸吧知识欲练神功学好物理中国武术&#xff0c;博大精深。能够掌握一门武林绝学&#xff0c;是全世界男人的终极梦想。可翻翻公认的武林十大绝学&#xff1a;葵花宝典、六脉神剑、九阳神功....不是断子绝孙&#xff0c;就是杀人于无形&#xff0c…

中国地区三级联动下拉菜单的实现

1.首先是js文件(area.js)&#xff1a; 1 function Dsy()2 {3 this.Items {};4 }5 Dsy.prototype.add function(id,iArray)6 {7 this.Items[id] iArray;8 }9 Dsy.prototype.Exists function(id)10 {11 if(typeof(this.Items[id]) "undefined") return false;12 r…

html 图片 填充方式,css怎么让图片填满?

在css中&#xff0c;可以将div的高度和宽度属性设置为100%&#xff0c;同时使用background-size属性设置背景图片为100%&#xff0c;便可以实现背景图片铺满屏幕。css怎么让图片填满&#xff1f;1、新建一个HTML文件&#xff0c;使用div标签创建一个模块&#xff0c;并设置其cl…

solrcloud线上创建collection,修改默认配置

一、先看API&#xff0c;创建collection1、上传配置文件到zookeeper1&#xff09; 本地内嵌zookeeper集群&#xff1a;java -classpath ./solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost localhost:9983,localhost:8574,localhost:9900 …

豆瓣评分9.4!这一部纪录片,探秘中国的未至之境!

全世界只有3.14 % 的人关注了爆炸吧知识Bilibili 联合“美国国家地理”&#xff0c;悄悄出品了一部史诗级动物记录片&#xff0c;忍不住要推荐给大朋友小朋友们——《未至之境》。这部纪录片由B站和国家地理联合创作&#xff0c;从绵延万里的山脉高原到枝繁叶茂的雨林竹海&…

.NET内存性能分析指南

.NET Memory Performance Analysis知道什么时候该担心&#xff0c;以及在需要担心的时候该怎么做译者注作者信息&#xff1a;Maoni Stephens - 微软架构师&#xff0c;负责.NET Runtime GC设计与实现 博客链接 Github译者&#xff1a;Bing Translator、INCerry 博客链接&#x…

解决php连接mysql数据库中文乱码问题

首先数据库编码和Mysql连接校对编码要一致&#xff1a; 其次在php文件中加入这两句&#xff1a; 2013-3-21更新&#xff1a; Linux下最好都用UTF-8编码&#xff1a; 1、数据库里面选utf-8_general_ci 2、php文件加上header("Content-Type: text/html; charset utf-8"…