如何以编程方式设置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());
其他回答
这可能对像我这样想在密码和自由文本模式之间切换的人有帮助。我尝试使用建议的输入法,但它只在一个方向上工作。我可以从密码切换到文本,但无法还原。对于那些试图处理切换(例如显示密码复选框)使用
@Override
public void onClick(View v)
{
if(check.isChecked())
{
edit.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
Log.i(TAG, "Show password");
}
else
{
edit.setTransformationMethod(PasswordTransformationMethod.getInstance());
Log.i(TAG, "Hide password");
}
}
我不得不承认这是解决方案。真希望我几个小时前就发现了!
我知道期望的答案是Java。但这里是我的2美分的建议,总是尝试处理XML中的视图相关的东西(至少基本的东西),所以我宁愿使用XML属性,而不是在java中处理这个用例
<EditText
android:inputType="textPassword"/>
取消隐藏密码:
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());
InputType将不工作,最简单的方法是setTransfromationMethod()
显示密码 edittextPassword.setTransformationMethod(空); 再次隐藏密码 edittextPassword。setTransformationMethod(新PasswordTransformationMethod ());