如何以编程方式设置EditText的输入类型?我尝试:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
这似乎没有任何效果。
如何以编程方式设置EditText的输入类型?我尝试:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
这似乎没有任何效果。
当前回答
取消隐藏密码:
editText.setInputType(
InputType.TYPE_CLASS_TEXT|
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
);
再次隐藏密码:
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
其他回答
editText.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
//你可以改变TYPE_…根据您的要求。
field.setInputType(InputType.TYPE_CLASS_TEXT);
我的回答不是对这个问题的直接回答。对于大多数情况,上述答案中的任何一个都应该是正确的。然而,没有一个对我的情况有帮助。
我在我的项目中有一个自定义的ViewGroup,其中包含标题的文本和EditText。这个EditText接收文本,数字,密码,电话等取决于案件和正在使用的地方。视图组的Caller应该告诉输入类型是什么。
重要提示:设置inputType应该是EditText的最后一组(或者至少它必须在设置EditText的Text之后),否则,没有任何效果。
取消隐藏密码:
editText.setInputType(
InputType.TYPE_CLASS_TEXT|
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
);
再次隐藏密码:
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
隐藏:
edtPassword.setInputType(InputType.TYPE_CLASS_TEXT);
edtPassword.setTransformationMethod(null);
显示:
edtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());