继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

安卓随机键盘简单的一个方法

红颜莎娜
关注TA
已关注
手记 125
粉丝 17
获赞 65

private void setDoorLockState(final int state) {

    
    dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去除对话框的标题
    dialog.setContentView(R.layout.unlock_password_dialog);    // 在代码中设置界面大小的方法:
    Display display = getWindowManager().getDefaultDisplay();    // 获取屏幕宽、高
    Window window = dialog.getWindow();
    window.setGravity(Gravity.BOTTOM);// 对话框底对齐
    window.setBackgroundDrawableResource(R.drawable.news_home_dialog_border);
    LayoutParams windowLayoutParams = window.getAttributes(); // 获取对话框当前的参数值
    windowLayoutParams.width = (int) (display.getWidth()); // 宽度设置为屏幕的0.85
    windowLayoutParams.height = (int) (display.getHeight() * 0.6); // 高度设置为屏幕的0.24
    dialog.show();
    
    dialog.setCancelable(false);// 点击外面和返回建无法隐藏
    

    et_password = (EditText) dialog.findViewById(R.id.et_password);

    btn_1 = (Button) dialog.findViewById(R.id.btn_1);
    btn_2 = (Button) dialog.findViewById(R.id.btn_2);
    btn_3 = (Button) dialog.findViewById(R.id.btn_3);
    btn_4 = (Button) dialog.findViewById(R.id.btn_4);
    btn_5 = (Button) dialog.findViewById(R.id.btn_5);
    btn_6 = (Button) dialog.findViewById(R.id.btn_6);
    btn_7 = (Button) dialog.findViewById(R.id.btn_7);
    btn_8 = (Button) dialog.findViewById(R.id.btn_8);
    btn_9 = (Button) dialog.findViewById(R.id.btn_9);
    btn_10 = (Button) dialog.findViewById(R.id.btn_10);    int[] a = { 4, 3, 1, 0, 5, 9, 2, 6, 8, 7 };
    Button[] btn = { btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7,
            btn_8, btn_9, btn_10 };    int[] b = new int[10];// 乱序键盘值数组
    int c = (int) (Math.random() * 10);// 0-9的随机数
    // 赋值于乱序键盘值数组
    for (int i = 0; i < b.length; i++) {        if (c + i < b.length) {
            b[i] = a[c + i];
        } else {

            b[i] = a[i - b.length + c];// 比如随机数为7,把a[7]赋给b[0],a[]赋完以后,再从a【0】开始赋值给b【】
        }

    }    // ========================================================================给按钮赋值===================
    for (int i = 0; i < btn.length; i++) {
        btn[i].setText(String.valueOf(b[i]));
    }    // ========================================================================关闭键盘====================
    dialog.findViewById(R.id.btn_close).setOnClickListener(            new OnClickListener() {                @Override
                public void onClick(View v) {
                    

                    dialog.dismiss();
                }
            });

    dialog.findViewById(R.id.iv_delete).setOnClickListener(            new OnClickListener() {                @Override
                public void onClick(View v) {                    int index = et_password.getSelectionStart();
                    Log.e("删除键", "------------------------------" + index);
                    Editable editable = et_password.getText();                    if (editable != null && index > 0) {
                        editable.delete(index - 1, index);
                    }

                }
            });
    dialog.findViewById(R.id.btn_positive).setOnClickListener(            new OnClickListener() {                @Override
                public void onClick(View v) {                    // 对话框确定按钮
                    String password = et_password.getText().toString();
                    Log.e("密码", "------------------------------" + password);                    if (password.length() == 6) {                        final byte[] passwd = password.getBytes();                        new Thread(new Runnable() {                            @Override
                            public void run() {                                // TODO 点击确认键后的操作

                            }
                        }).start();
                        dialog.dismiss();                        // //-----------------------------------------------华丽分割线------5.7
                    } else if (TextUtils.isEmpty(password)) {
                        ToastUtit
                                .showToast(DoorLockActivity.this, "密码不能为空");
                    } else if (password.length() < 7) {
                        ToastUtit.showToast(DoorLockActivity.this,                                "请输入6位密码");
                    }

                }
            });

    btn_1.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第1个按钮
            et_password.append(btn_1.getText().toString());

        }
    });
    btn_2.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第2个按钮
            et_password.append(btn_2.getText().toString());

        }
    });
    btn_3.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第3个按钮
            et_password.append(btn_3.getText().toString());

        }
    });
    btn_4.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第4个按钮
            et_password.append(btn_4.getText().toString());
        }
    });
    btn_5.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第5个按钮
            et_password.append(btn_5.getText().toString());

        }
    });
    btn_6.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第6个按钮
            et_password.append(btn_6.getText().toString());

        }
    });
    btn_7.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第7个按钮
            et_password.append(btn_7.getText().toString());

        }
    });
    btn_8.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第8个按钮
            et_password.append(btn_8.getText().toString());

        }
    });
    btn_9.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第9个按钮
            et_password.append(btn_9.getText().toString());
        }
    });
    btn_10.setOnClickListener(new OnClickListener() {        @Override
        public void onClick(View v) {            // 对话框第10个按钮
            et_password.append(btn_10.getText().toString());

        }
    });

以上的方法可直接复制到代码中,欢迎各位大牛提出批评意见

原文链接:http://www.apkbus.com/blog-838993-63055.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP