在最近的项目中,用户需要输入密码,不想用系统键盘,就写了一个自定义键盘,效果图如下
在写的过程中,发现editText设置了setInputType(InputType.TYPE_NULL);后,android:password="true"不管用了,显示的是明文 如图
解决的办法是:editPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
另外,在调用editPassword.setText("")时,光标总是在最前面,解决办法是
editPassword.setSelection(editPassword.getText().toString().length());
还有如果界面有多个输入框,在从其他输入框切换到密码输入框的时候,系统输入法可能无法屏蔽,如图
解决办法是监听setOnFocusChangeListener,在获取焦点的时候,调用下面的方法
public void closeSystemKeyBoard(){
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editPassword.getWindowToken(), 0);
}
如果谁需要自定义键盘代码,留言我再贴吧,很简单的东西,键盘利用的PopupWindow
如果转载,请注明出处