根据项目要求对上个输入框进行了处理:

改动如下:

1.弹框的标题栏移到curtomdialog里处理,避免在自定义控件中进行点击事件。

2.实现弹框的取消,和忘记密码的点击事件

dialog_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffffff"tools:context="com.example.myapplication.MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="81dp"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="40dp"android:layout_margin="5dp"android:id="@+id/relativeLayout"><!-- 取消按钮 --><ImageViewandroid:id="@+id/img_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/icon_clean"android:layout_centerVertical="true"/><TextViewandroid:id="@+id/dialog_title"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_centerInParent="true"android:gravity="center"android:text="输入提现密码"android:textColor="#333333"android:textSize="14sp" /></RelativeLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="#e0e0e0" /><!-- 6位密码框布局,需要一个圆角边框的shape作为layout的背景 --><TextViewandroid:layout_width="match_parent"android:layout_height="30dp"android:text="提现金额600元"android:textSize="13sp"android:gravity="center"android:layout_marginTop="10dp"/></LinearLayout><com.example.myapplication.PasswordViewandroid:id="@+id/pwd_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="96dp"/><!--<!– 忘记密码链接 –>--><!--<RelativeLayout--><!--android:layout_width="match_parent"--><!--android:layout_height="30dp"--><!--android:layout_gravity="center_vertical"--><!--android:layout_marginTop="15dp">--><!--<TextView--><!--android:id="@+id/tv_title1"--><!--android:layout_width="wrap_content"--><!--android:layout_height="match_parent"--><!--android:text="提现后预计一到三个小时到账"--><!--android:textColor="#b3b3b3"--><!--android:layout_marginLeft="20dp"/>--><!--<TextView--><!--android:id="@+id/tv_forgetPwd"--><!--android:layout_width="wrap_content"--><!--android:layout_height="match_parent"--><!--android:layout_alignParentRight="true"--><!--android:text="忘记密码?"--><!--android:textColor="#4d4d4d"--><!--android:layout_marginRight="20dp"/>--><!--</RelativeLayout>-->
</RelativeLayout>

layout_password.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/rl_bottom"android:layout_width="match_parent"android:layout_height="fill_parent"android:background="#ffffff"android:orientation="vertical"><LinearLayoutandroid:id="@+id/linear_pass"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><!--<View--><!--android:layout_width="match_parent"--><!--android:layout_height="0.5dp"--><!--android:background="#e0e0e0" />--><!--<!– 6位密码框布局,需要一个圆角边框的shape作为layout的背景 –>--><!--<TextView--><!--android:layout_width="match_parent"--><!--android:layout_height="30dp"--><!--android:text="提现金额600元"--><!--android:textSize="19sp"--><!--android:gravity="center"--><!--android:layout_marginTop="10dp"/>--><LinearLayoutandroid:id="@+id/ll_pwd"android:layout_width="match_parent"android:layout_height="43dp"android:layout_marginLeft="22dp"android:layout_marginRight="20dp"android:layout_marginTop="10dp"android:background="@drawable/shape_input_area"android:orientation="horizontal"><!--inputType设置隐藏密码明文textSize设置大一点,否则“点”太小了,不美观!--><!--<TextView--><!--android:id="@+id/tv_pass1"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--><!--<View--><!--android:layout_width="1dp"--><!--android:layout_height="match_parent"--><!--android:background="#999999" />--><!--<TextView--><!--android:id="@+id/tv_pass2"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--><!--<View--><!--android:layout_width="1dp"--><!--android:layout_height="match_parent"--><!--android:background="#999999" />--><!--<TextView--><!--android:id="@+id/tv_pass3"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--><!--<View--><!--android:layout_width="1dp"--><!--android:layout_height="match_parent"--><!--android:background="#999999" />--><!--<TextView--><!--android:id="@+id/tv_pass4"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--><!--<View--><!--android:layout_width="1dp"--><!--android:layout_height="match_parent"--><!--android:background="#999999" />--><!--<TextView--><!--android:id="@+id/tv_pass5"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--><!--<View--><!--android:layout_width="1dp"--><!--android:layout_height="match_parent"--><!--android:background="#999999" />--><!--<TextView--><!--android:id="@+id/tv_pass6"--><!--android:layout_width="0dp"--><!--android:layout_height="match_parent"--><!--android:layout_weight="1"--><!--android:gravity="center"--><!--android:inputType="numberPassword"--><!--android:textSize="32sp" />--></LinearLayout><!-- 忘记密码链接 --><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="30dp"android:layout_gravity="center_vertical"android:layout_marginTop="15dp"><TextViewandroid:id="@+id/tv_title1"android:layout_width="wrap_content"android:layout_height="match_parent"android:text="提现后预计一到三个小时到账"android:textColor="#b3b3b3"android:layout_marginLeft="20dp"/><TextViewandroid:id="@+id/tv_forgetPwd"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_alignParentRight="true"android:text="忘记密码?"android:textColor="#4d4d4d"android:layout_marginRight="20dp"/></RelativeLayout></LinearLayout><!-- 输入键盘 --></RelativeLayout>

在自定义控件passwordView中的接口中做了忘记密码的点击事件处理

public interface OnPasswordInputFinish {void inputFinish();void onClick();}
// 设置监听方法,在第6位输入完成后触发public void setOnFinishInput(final OnPasswordInputFinish pass) {forgetPassword.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {pass.onClick();}}); //点击忘记密码需要实现的方法tvList[5].addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {}@Overridepublic void afterTextChanged(Editable s) {if (s.toString().length() == 1) {strPassword = ""; // 每次触发都要先将strPassword置空,再重新获取,避免由于输入删除再输入造成混乱for (int i = 0; i < 6; i++) {strPassword += tvList[i].getText().toString().trim();}if (pass != null) {pass.inputFinish(); // 接口中要实现的方法,完成密码输入完成后的响应逻辑}}}});}

这样创建自定义控件时,就可以实现其中的方法

CurtomDialog.java

package com.example.myapplication;import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;/*** Created by 付刚 on 2017/11/27.*/public class CustomDialog extends DialogFragment {private PasswordView pwdView;private ImageView cancel;private TextView title;@NonNull@Overridepublic Dialog onCreateDialog(Bundle savedInstanceState) {Dialog dialog = new Dialog(getActivity(), R.style.Dialog);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);dialog.setCanceledOnTouchOutside(true);/**设置宽度为屏宽、靠近屏幕底部*/Window window = dialog.getWindow();/**设置背景透明*/window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));WindowManager.LayoutParams wlp = window.getAttributes();wlp.gravity = Gravity.BOTTOM;dialog.setContentView(R.layout.dialog_normal);wlp.width = WindowManager.LayoutParams.MATCH_PARENT;wlp.height = (int) getResources().getDimension(R.dimen.custom_hei);window.setAttributes(wlp);initViews(dialog);return dialog;}private void initViews(Dialog dialog) {pwdView = dialog.findViewById(R.id.pwd_view);cancel=dialog.findViewById(R.id.img_cancel);title=dialog.findViewById(R.id.dialog_title);pwdView.setOnFinishInput(new PasswordView.OnPasswordInputFinish() {@Overridepublic void inputFinish() {Toast.makeText(getActivity(), pwdView.getStrPassword(), Toast.LENGTH_SHORT).show();Log.e("fugang", "密码是" + pwdView.getStrPassword());}@Overridepublic void onClick() {Toast.makeText(getActivity(), "忘记密码", Toast.LENGTH_SHORT).show();Log.e("fugang", "密码是" + pwdView.getStrPassword());}});cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dismiss();}});}
}

这样就可以了,可以实现项目中需求

源码下载http://download.csdn.net/download/fugang1230/10214579

仿微信/支付宝的自定义提现密码输入(二)相关推荐

  1. 仿微信/支付宝的自定义提现密码输入(一)

    项目上要实现提现到银行卡的功能,自己查找资料,顺便写了个demo.自定义的输入框感觉效果不错,分享出来. 一,整体分为多个布局用addview加载,键盘和上边的密码输出框,布局文件: <?xml ...

  2. 仿微信支付宝支付密码

    仿微信支付宝支付密码 效果图: 一.主要知识点 GridLayout的应用 EditText的textCursorDrawable的应用 InputMethodManager的应用 TextWatch ...

  3. 微信小程序之支付密码输入demo

    微信小程序之支付密码输入demo 原文链接:https://www.cnblogs.com/tandaxia/p/9338443.html 在小程序中实现支付密码的输入,要解决几个问题: 1.小程序要 ...

  4. android微信风格,Android实用View系列-----仿微信支付宝等风格的支付密码输入框的实现...

    开始阅读本篇文章之前先来说一下使用场景吧,我们知道如今移动支付已经占据我们日常支付的90%的份额,以微信支付和支付宝支付为主,也越来越多的APP开始添加支付模块,不管使用哪种支付有一个步骤是少不了的, ...

  5. 微信小程序之支付密码输入

    wxml: <view catchtap='showInputLayer' class="btn_pay">立即支付</view> <!-- 密码输入 ...

  6. 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(二)物理刚体关节

    [Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(一)前言,界面UI 项目地址已放到 github 上,需要的小伙伴可自行下载. 这节我们讲一下车子的物理刚体关节. 我在项目中添加了一 ...

  7. 无需任何自定义,一个布局搞定仿微信支付宝密码框

    全网太多的密码输入框的实现方案,基本上都是自定义之类的.看起来还是挺麻烦,冥思苦想,想出了一种简单方案,一个布局就搞定.布局如下; <?xml version="1.0" e ...

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

    在用到支付类或者验证类app时,都有一个简密的输入框.百度了下有个不错的帖子点击打开链接 不过自己也写了个简单的类似的.不废话了.没图说个席八. 懒得运行,直接截layout.xml的效果图先. 布局 ...

  9. 微信小程序--6位密码输入自动提交

    效果如图所示,自动获取焦点,只允许输入数字,6位校验,6位数字自动提交数据,数据提交成功后隐藏输入框,除了点击"忘记密码",其余的均隐藏交易密码弹窗, 公共插件代码如下所示gGit ...

最新文章

  1. PHP开发之thinkPHP分层设计
  2. 世界-中国-省-市-县 天气预报
  3. 前端学习(2389):项目初始化总结
  4. 三大数据库数据库端口号及连接jdbc驱动下载
  5. Qt使用udp的Broadcast实现广播图片
  6. nginx配置url重写
  7. 工信部副部长怀进鹏:信息产业呈现四大发展特点
  8. 【改进】C# WinForm捕获全局异常 SamWang
  9. JavaScript this绑定规则
  10. mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据
  11. 乐高科技系列搭建指南 pdf_玩转乐高创意亲子搭建系列(4)小颗粒作品
  12. 乐橙tp6接入硬盘_乐橙“智能养殖”新概念,全套监管最佳组合方案曝光!
  13. android studio 上手使用 大水逼问题
  14. linux硬盘只读脚本 zabbix,Zabbix如何设置脚本告警
  15. spark读写Oracle、hive的艰辛之路(一)
  16. 超声波测距 c语言程序流程图,超声波模块测距51程序_单片机超声波测距c语言
  17. octobercms mysql_OctoberCMS插件形成数据库关系(OctoberCMS plugin form database relationships)...
  18. Dreamweaver构建Blog全程实录
  19. day2-运算符和分支
  20. 基于QT和Node.js的八叉树算法提取图片主题色

热门文章

  1. server 08 做DNS和域分离
  2. pandas数据拼接
  3. 关于ubuntu的详细介绍
  4. 数据库基本原理==嵌套查询
  5. SVN(subversion )服务端和客户端的下载安装使用
  6. 机器学习面试题(转)
  7. 随笔--初到青岛,爱意油然而生
  8. 辅助驾驶功能开发-功能规范篇(05)-智能限速辅助SLA
  9. 云南省昭通市领导一行莅临上海控安调研指导
  10. 抓住那头牛(宽搜bfs)