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());
}
});
以上的方法可直接复制到代码中,欢迎各位大牛提出批评意见
一个简单的安卓随机键盘方法 转载https://www.codesocang.com/appboke/34795.html
热门源码