效果图:

主要代码:

import java.util.ArrayList;import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import com.example.payui.KeyboardEnum.ActionEnum;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.lidroid.xutils.view.annotation.event.OnLongClick;
/*** Dialog 显示视图* @author LanYan**/
@SuppressLint("InflateParams")
public class PayPasswordView{@ViewInject(R.id.pay_keyboard_del)private ImageView del;@ViewInject(R.id.pay_keyboard_zero)private ImageView zero;@ViewInject(R.id.pay_keyboard_one)private ImageView one;@ViewInject(R.id.pay_keyboard_two)private ImageView two;@ViewInject(R.id.pay_keyboard_three)private ImageView three;@ViewInject(R.id.pay_keyboard_four)private ImageView four;@ViewInject(R.id.pay_keyboard_five)private ImageView five;@ViewInject(R.id.pay_keyboard_sex)private ImageView sex;@ViewInject(R.id.pay_keyboard_seven)private ImageView seven;@ViewInject(R.id.pay_keyboard_eight)private ImageView eight;@ViewInject(R.id.pay_keyboard_nine)private ImageView nine;@ViewInject(R.id.pay_cancel)private TextView cancel;@ViewInject(R.id.pay_sure)private TextView sure;@ViewInject(R.id.pay_box1)private TextView box1;@ViewInject(R.id.pay_box2)private TextView box2;@ViewInject(R.id.pay_box3)private TextView box3;@ViewInject(R.id.pay_box4)private TextView box4;@ViewInject(R.id.pay_box5)private TextView box5;@ViewInject(R.id.pay_box6)private TextView box6;@ViewInject(R.id.pay_title)private TextView title;@ViewInject(R.id.pay_content)private TextView content;private ArrayList<String> mList=new ArrayList<String>();private View mView;private OnPayListener listener;private Context mContext;public PayPasswordView(){}public static PayPasswordView getInstance(){return  new PayPasswordView();}public View getDecorView(String monney,Context mContext,OnPayListener listener){this.listener=listener;this.mContext=mContext;mView=LayoutInflater.from(mContext).inflate(R.layout.item_paypassword, null);ViewUtils.inject(this,mView);content.setText("消费金额:"+monney+"元");return mView;}@OnClick({R.id.pay_keyboard_del,R.id.pay_keyboard_zero,R.id.pay_keyboard_one,R.id.pay_keyboard_two,R.id.pay_keyboard_three,R.id.pay_keyboard_four,R.id.pay_keyboard_five,R.id.pay_keyboard_sex,R.id.pay_keyboard_seven,R.id.pay_keyboard_eight,R.id.pay_keyboard_nine,R.id.pay_cancel,R.id.pay_sure})private void onClick(View v){if(v==zero){parseActionType(KeyboardEnum.zero);}else if(v==one){parseActionType(KeyboardEnum.one);}else if(v==two){parseActionType(KeyboardEnum.two);}else if(v==three){parseActionType(KeyboardEnum.three);}else if(v==four){parseActionType(KeyboardEnum.four);}else if(v==five){parseActionType(KeyboardEnum.five);}else if(v==sex){parseActionType(KeyboardEnum.sex);}else if(v==seven){parseActionType(KeyboardEnum.seven);}else if(v==eight){parseActionType(KeyboardEnum.eight);}else if(v==nine){parseActionType(KeyboardEnum.nine);}else if(v==cancel){parseActionType(KeyboardEnum.cancel);}else if(v==sure){parseActionType(KeyboardEnum.sure);}else if(v==del){parseActionType(KeyboardEnum.del);}}@OnLongClick(R.id.pay_keyboard_del)public boolean onLongClick(View v) {// TODO Auto-generated method stubparseActionType(KeyboardEnum.longdel);return false;}private void parseActionType(KeyboardEnum type) {// TODO Auto-generated method stubif(type.getType()==ActionEnum.add){if(mList.size()<6){mList.add(type.getValue());updateUi();}}else if(type.getType()==ActionEnum.delete){if(mList.size()>0){mList.remove(mList.get(mList.size()-1));updateUi();}}else if(type.getType()==ActionEnum.cancel){listener.onCancelPay();}else if(type.getType()==ActionEnum.sure){if(mList.size()<6){Toast.makeText(mContext, "支付密码必须6位", Toast.LENGTH_SHORT).show();}else{String payValue="";for (int i = 0; i < mList.size(); i++) {payValue+=mList.get(i);}listener.onSurePay(payValue);}}else if(type.getType()==ActionEnum.longClick){mList.clear();updateUi();}}private void updateUi() {// TODO Auto-generated method stubif(mList.size()==0){box1.setText("");box2.setText("");box3.setText("");box4.setText("");box5.setText("");box6.setText("");}else if(mList.size()==1){box1.setText(mList.get(0));box2.setText("");box3.setText("");box4.setText("");box5.setText("");box6.setText("");}else if(mList.size()==2){box1.setText(mList.get(0));box2.setText(mList.get(1));box3.setText("");box4.setText("");box5.setText("");box6.setText("");}else if(mList.size()==3){box1.setText(mList.get(0));box2.setText(mList.get(1));box3.setText(mList.get(2));box4.setText("");box5.setText("");box6.setText("");}else if(mList.size()==4){box1.setText(mList.get(0));box2.setText(mList.get(1));box3.setText(mList.get(2));box4.setText(mList.get(3));box5.setText("");box6.setText("");}else if(mList.size()==5){box1.setText(mList.get(0));box2.setText(mList.get(1));box3.setText(mList.get(2));box4.setText(mList.get(3));box5.setText(mList.get(4));box6.setText("");}else if(mList.size()==6){box1.setText(mList.get(0));box2.setText(mList.get(1));box3.setText(mList.get(2));box4.setText(mList.get(3));box5.setText(mList.get(4));box6.setText(mList.get(5));}}public interface OnPayListener{void onCancelPay();void onSurePay(String password);}}

Enum:

public enum KeyboardEnum {one(ActionEnum.add,"1"),two(ActionEnum.add,"2"),three(ActionEnum.add,"3"),four(ActionEnum.add,"4"),five(ActionEnum.add,"5"),sex(ActionEnum.add,"6"),seven(ActionEnum.add,"7"),eight(ActionEnum.add,"8"),nine(ActionEnum.add,"9"),zero(ActionEnum.add,"0"),del(ActionEnum.delete,"del"),longdel(ActionEnum.longClick,"longclick"),cancel(ActionEnum.cancel,"cancel"),sure(ActionEnum.sure,"sure");public enum ActionEnum{add,delete,longClick,cancel,sure}private ActionEnum type;private String value;private KeyboardEnum(ActionEnum type,String value){this.type=type;this.value=value;}public ActionEnum getType() {return type;}public void setType(ActionEnum type) {this.type = type;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}}

测试类:

public class MainActivity extends Activity {private DialogWidget mDialogWidget;private TextView payTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);payTextView=(TextView)findViewById(R.id.payEditText);payTextView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmDialogWidget=new DialogWidget(MainActivity.this, getDecorViewDialog());mDialogWidget.show();}});}protected View getDecorViewDialog() {// TODO Auto-generated method stubreturn PayPasswordView.getInstance().getDecorView("45.99",this,new OnPayListener() {@Overridepublic void onSurePay(String password) {// TODO Auto-generated method stubmDialogWidget.dismiss();mDialogWidget=null;payTextView.setText(password);Toast.makeText(getApplicationContext(), "交易成功", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancelPay() {// TODO Auto-generated method stubmDialogWidget.dismiss();mDialogWidget=null;Toast.makeText(getApplicationContext(), "交易已取消", Toast.LENGTH_SHORT).show();}});}
}

Android 支付宝支付密码输入界面相关推荐

  1. Android自定义控件开发系列(三)——仿支付宝六位支付密码输入页面

    在移动互联领域,有那么几家龙头一直是我等学习和追求的目标,比如支付宝.微信.饿了么.酷狗音乐等等,大神举不胜举,他们设计的界面.交互方式已经培养了中国(有可能会是世界)民众的操作习惯:举个小例子,对话 ...

  2. android获取支付宝登录账号密码错误,Android实现支付宝6位密码输入界面

    我们先来照图分析一下: (1)限制输入6位,每一位都有自己的框格,每个格显示一位: (2)有回退/取消支付按钮: (3)有忘记密码链接: (4)自定义的只能输入数字的键盘输入区: (5)在6位输完后自 ...

  3. php支付密码控件,Android高仿微信支付密码输入控件实例代码

    这篇文章主要为大家详细介绍了Android高仿微信支付密码输入控件的具体实现代码,供大家参考,具体内容如下 像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现 ...

  4. android支付界面设计,Android支付宝支付设计开发

    在移动支付领域,支付宝支付占用巨大份额,根据艾瑞咨询公布的报告数据:2014Q3,支付宝斩获了82.6%的市场份额,在移动支付的霸主地位越来越稳固.财付通支付的发力点在微信支付和手Q支付,在移动支付格 ...

  5. android 支付宝支付

    android 支付宝支付 支付宝代码部分比微信简单很多,不需要专门配置包名,随便放哪都行,稍微麻烦一些的就是申请和审核,具体记录一下审核流程:   1.登录支付宝官网,选择"商家中心&qu ...

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

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

  7. 安卓应用安全指南 5.1 创建密码输入界面

    5.1 创建密码输入界面 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 5 ...

  8. android支付宝支付开发过程

    android支付宝支付开发过程 原文:android支付宝支付开发过程 支付宝开发流程: 1.在支付宝申请一个账号并开通开发者功能和移动支付的功能. 支付宝地址:https://auth.alipa ...

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

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

  10. windows卡在密码输入界面或者一直重启问题解决

    windows卡在密码输入界面或者一直重启问题解决 昨天晚上打了一把LOL,关游戏的时候在wegame网络加速没有完全退出的情况下直接关机了,然后悲剧来了,第二天开机的时候,windows卡在密码输入 ...

最新文章

  1. adb 连接不上电脑怎么办?
  2. 掌握这35 个小细节,助你有效提升 Java 代码的执行效率!
  3. 【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
  4. Linux下进程通信的八种方法
  5. 为什么需要StringBuffer
  6. C语言第三次博客作业---单层循环结构
  7. 计算机网络(16)-计算机网络应用示例
  8. java中特殊流程控制语句,深入分析JAVA流程控制语句
  9. 保持长宽比 对背景图像进行修改android:scaleType=fitXY
  10. 2018计算机java二级题库6_2018年计算机二级考试JAVA试题及答案六
  11. 今日头条技术架构分析
  12. Doc2Vec 模型参数
  13. CentOS8安装yapi
  14. 基于ResNet的MSTAR数据集目标分类
  15. SSM整合案例分析(详解)
  16. Python + Excel 办公自动化 01 —— 硬菜马上就来
  17. <计算机视觉 六> 深度学习目标检测模型的评估标准
  18. 梦在远方,而你在心上
  19. 58 同城 iOS 客户端 Hybrid 框架探索
  20. 2016科技期刊引证报告计算机,2016新编中国科技期刊引证报告.doc

热门文章

  1. android提交sql语句,sql的提交 - 亭子happy的个人页面 - OSCHINA - 中文开源技术交流社区...
  2. FMI飞马网 | 【线上直播】如何处理好横向关系 在协同与合作中实现双赢(下)
  3. xcb_query_extension_reply_t的解释
  4. python通过线程实现定时器timer的方法
  5. php生成appid,uniapp运营中项目转移一定要注意把DCloud appid转移过来
  6. 服务器技术的发展方向
  7. 川的第一份博客——内容定义
  8. 正宇丨人活得虚伪容易,活得真实很难
  9. Epub格式电子书格式解析
  10. 海洋主题绘画_海底世界主题儿童画绘画作品