仿淘宝支付密码界面

 

如上图效果:

上网查了些别人写的自定义控件,界面有些差别,自己还得重新绘画计算,干脆自己用6个edittext做算了,加些条件判断:

主要监听et的文本变化,和键盘的删除按键

1、文本长度设置最大为1嘛,然后afterTextChanged的时候判断长度是否1,是的话就更改焦点,主要是et的clearFocus()和requestFocusFromTouch(),例如et1的文本长度为1了,et1取消焦点,et2获得焦点;

2、删除按钮判断当前的et长度为0了,则应该是删除上面一个et的内容并把焦点给他

代码如下,没封装,所以很长,layout文件就自己搞了:

 

final Dialog dialog = new Dialog(this , R.style.CustomDialog);
View view = LayoutInflater.from(this).inflate(R.layout.dialog_admin_password, null);
final EditText et1 = view.findViewById(R.id.password1_et);
final EditText et2 = view.findViewById(R.id.password2_et);
final EditText et3 = view.findViewById(R.id.password3_et);
final EditText et4 = view.findViewById(R.id.password4_et);
final EditText et5 = view.findViewById(R.id.password5_et);
final EditText et6 = view.findViewById(R.id.password6_et);
ImageView closeIv = view.findViewById(R.id.close_iv);
et1.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {
        if(s.toString().length()==1){
            et1.clearFocus();
            et2.requestFocusFromTouch();
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6){
                if(password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }else {
                    PhoneUtil.showCustomToast("密码错误!",2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }
    }
});
et2.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {
        if(s.toString().length()==1){
            et2.clearFocus();
            et3.requestFocusFromTouch();
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6){
                if(password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }else {
                    PhoneUtil.showCustomToast("密码错误!",2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }else {
            et2.clearFocus();
            et1.requestFocusFromTouch();
        }
    }
});
et3.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {
        if(s.toString().length()==1){
            et3.clearFocus();
            et4.requestFocusFromTouch();
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6){
                if(password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }else {
                    PhoneUtil.showCustomToast("密码错误!",2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }else {
            et3.clearFocus();
            et2.requestFocusFromTouch();
        }
    }
});
et4.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {
        if(s.toString().length()==1){
            et4.clearFocus();
            et5.requestFocusFromTouch();
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6){
                if(password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }else {
                    PhoneUtil.showCustomToast("密码错误!",2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }else {
            et4.clearFocus();
            et3.requestFocusFromTouch();
        }
    }
});
et5.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {

        if(s.toString().length()==1){
            et5.clearFocus();
            et6.requestFocusFromTouch();
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6){
                if(password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }else {
                    PhoneUtil.showCustomToast("密码错误!",2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }else {
            et5.clearFocus();
            et4.requestFocusFromTouch();
        }

    }
});

et6.addTextChangedListener(new TextWatcher()
{
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count)
    {

    }

    @Override
    public void afterTextChanged(Editable s)
    {

        if(s.toString().length()==1){
            String password = et1.getText().toString()+et2.getText().toString()+et3.getText().toString()+et4.getText().toString()+et5.getText().toString()+et6.getText().toString();
            if(password.length()==6)
            {
                if (password.equals("123456"))
                {
                    Intent intent1 = new Intent(LoginActivity.this, SettingActivity.class);
                    startActivity(intent1);
                    dialog.dismiss();
                }
                else
                {
                    PhoneUtil.showCustomToast("密码错误!", 2);
                    et1.setText("");
                    et2.setText("");
                    et3.setText("");
                    et4.setText("");
                    et5.setText("");
                    et6.setText("");
                    et1.requestFocusFromTouch();
                }
            }
        }else {
            et6.clearFocus();
            et5.requestFocusFromTouch();
        }
    }
});
et1.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        return false;
    }
});
et2.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if(keyCode  == KeyEvent.KEYCODE_DEL&&event.getAction()==KeyEvent.ACTION_DOWN)
        {
            if (et2.getText().toString().length() == 0)
            {//et2没数据点了删除键则要删除1的数据并选中1
                et2.clearFocus();
                et1.setText("");
                et1.requestFocusFromTouch();
            }
        }
        return false;
    }
});
et3.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if(keyCode  == KeyEvent.KEYCODE_DEL&&event.getAction()==KeyEvent.ACTION_DOWN)
        {
            if (et3.getText().toString().length() == 0)
            {
                et3.clearFocus();
                et2.setText("");
                et2.requestFocusFromTouch();
            }
        }
        return false;
    }
});
et4.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if(keyCode  == KeyEvent.KEYCODE_DEL&&event.getAction()==KeyEvent.ACTION_DOWN)
        {
            if (et4.getText().toString().length() == 0)
            {
                et4.clearFocus();
                et3.setText("");
                et3.requestFocusFromTouch();

            }
        }
        return false;
    }
});
et5.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {

        if(keyCode  == KeyEvent.KEYCODE_DEL&&event.getAction()==KeyEvent.ACTION_DOWN)
        {
            if (et5.getText().toString().length() == 0)
            {
                et5.clearFocus();
                et4.setText("");
                et4.requestFocusFromTouch();

            }
        }
        return false;
    }
});
et6.setOnKeyListener(new View.OnKeyListener()
{
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if(keyCode  == KeyEvent.KEYCODE_DEL&&event.getAction()==KeyEvent.ACTION_DOWN)
        {
            if (et6.getText().toString().length() == 0)
            {
                et6.clearFocus();
                et5.setText("");
                et5.requestFocusFromTouch();

            }
        }
        return false;
    }
});

closeIv.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        et1.setText("");
        et2.setText("");
        et3.setText("");
        et4.setText("");
        et5.setText("");
        et6.setText("");
        dialog.dismiss();
    }
});
dialog.setContentView(view , new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT ,WindowManager.LayoutParams.MATCH_PARENT  ));
WindowManager windowManager = getWindowManager();

dialog.getWindow().setLayout(windowManager.getDefaultDisplay().getWidth() , windowManager.getDefaultDisplay().getHeight());
dialog.setCancelable(false);
dialog.show();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值