不知道该如何一句话表达,标题姑且用产品的需求描述吧。其实产品想表达的意思是,在密码输入框实现全键盘样式英文键盘。
然后我们遇到一个大坑,总是展示中文键盘,代码如下:
passwordEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
// 切换密码是否可见
toggleButton.setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int currentPos = passwordEdit.getSelectionStart();
if (isChecked) {
passwordEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
} else {
passwordEdit.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
});
发现原来他忘记了个参数InputType.TYPE_CLASS_TEXT,纠正后代码如下
passwordEdit.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
toggleButton.setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
passwordEdit.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
} else {
passwordEdit.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
});