如何以编程方式设置EditText的输入类型?我尝试:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
这似乎没有任何效果。
如何以编程方式设置EditText的输入类型?我尝试:
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
这似乎没有任何效果。
当前回答
根据TextView文档,android:password的编程版本是setTransformationMethod(),而不是setInputType()。比如:
mEdit.setTransformationMethod(PasswordTransformationMethod.getInstance());
应该能行。
其他回答
要以编程方式设置EditText的输入类型,必须指定输入类类型为文本。
editPass.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
我的回答不是对这个问题的直接回答。对于大多数情况,上述答案中的任何一个都应该是正确的。然而,没有一个对我的情况有帮助。
我在我的项目中有一个自定义的ViewGroup,其中包含标题的文本和EditText。这个EditText接收文本,数字,密码,电话等取决于案件和正在使用的地方。视图组的Caller应该告诉输入类型是什么。
重要提示:设置inputType应该是EditText的最后一组(或者至少它必须在设置EditText的Text之后),否则,没有任何效果。
根据TextView文档,android:password的编程版本是setTransformationMethod(),而不是setInputType()。比如:
mEdit.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");
}
}
我不得不承认这是解决方案。真希望我几个小时前就发现了!
我已经解决了所有问题
.setInputType(InputType.TYPE_CLASS_NUMBER);
为看清楚的数据和
.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
看这些点(如果数据是数字,它不是其他类的选择)