SetInputType(InputType.TYPE_CLASS_NUMBER) 和 setInputType(InputType.InputType.TYPE_NUMBER_VARIATION_PASSWORD) 给出不同的键盘
SetInputType(InputType.TYPE_CLASS_NUMBER) and setInputType( InputType.InputType.TYPE_NUMBER_VARIATION_PASSWORD) give out different keyboards
我正在尝试在同一屏幕上创建两个带有密码和数字的字段。但是对于他们来说,默认调用不同的键盘,这看起来并不漂亮。如何解决?
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD)
和
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL)
送出不同的键盘。我该如何解决?
1.第一个输入字段:
otpField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
otpField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
2。第二个输入字段:
ePINField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
ePINField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
一个非常简单但不推荐的方法是将两个字段定义为密码并使第一个 EditText
可见。这没有意义,因为第一个不是密码,但它是一种做你想做的事情的方法(我不建议,因为这会妨碍可访问性)。
otpField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
otpField.getEditText().setTransformationMethod(HideReturnsTransformationMethod.getInstance());
ePINField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
setTransformationMethod()
方法将第一个 EditText
保留为“普通”数字字段,毕竟它的数字可见。
这样,两个键盘在视觉上就完全一样了。
您可以通过 XML 文件实现。您只需要在 editText 中添加 inputType。
如果你想要密码输入类型然后使用 android:inputType="numberPassword"
如果你想要纯数字文本那么你可以使用 android:inputType="number"
.
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberPassword"/>
我正在尝试在同一屏幕上创建两个带有密码和数字的字段。但是对于他们来说,默认调用不同的键盘,这看起来并不漂亮。如何解决?
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD)
和
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL)
送出不同的键盘。我该如何解决?
1.第一个输入字段:
otpField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
otpField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);
2。第二个输入字段:
ePINField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
ePINField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
一个非常简单但不推荐的方法是将两个字段定义为密码并使第一个 EditText
可见。这没有意义,因为第一个不是密码,但它是一种做你想做的事情的方法(我不建议,因为这会妨碍可访问性)。
otpField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
otpField.getEditText().setTransformationMethod(HideReturnsTransformationMethod.getInstance());
ePINField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
setTransformationMethod()
方法将第一个 EditText
保留为“普通”数字字段,毕竟它的数字可见。
这样,两个键盘在视觉上就完全一样了。
您可以通过 XML 文件实现。您只需要在 editText 中添加 inputType。
如果你想要密码输入类型然后使用 android:inputType="numberPassword"
如果你想要纯数字文本那么你可以使用 android:inputType="number"
.
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberPassword"/>