首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >InputType.InputType.TYPE_NUMBER_VARIATION_PASSWORD) SetInputType(InputType.TYPE_CLASS_NUMBER)和setInputType( SetInputType)提供不同的键盘

InputType.InputType.TYPE_NUMBER_VARIATION_PASSWORD) SetInputType(InputType.TYPE_CLASS_NUMBER)和setInputType( SetInputType)提供不同的键盘
EN

Stack Overflow用户
提问于 2021-08-20 13:29:32
回答 2查看 239关注 0票数 0

我试图在同一个屏幕上用密码和数字创建两个字段。但对他们来说,默认情况下会调用不同的键盘,这看起来并不好看。怎么解决这个问题呢?

代码语言:javascript
代码运行次数:0
运行
复制
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD) 

代码语言:javascript
代码运行次数:0
运行
复制
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL) 

发出不同的键盘。我怎么才能修好它?

1.第一个输入字段:

代码语言:javascript
代码运行次数:0
运行
复制
otpField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
otpField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL);

2.第二个输入字段:

代码语言:javascript
代码运行次数:0
运行
复制
ePINField.getEditText().setType(TYPE_FORMATTED_INVISIBLE_MASK);
ePINField.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-20 14:07:22

一种非常简单但不建议使用的方法是将这两个字段定义为密码,并使第一个EditText可见。这是没有意义的,因为第一个密码不是密码,但它是一种您想做的事情(我不建议,因为这样会妨碍访问性)。

代码语言:javascript
代码运行次数:0
运行
复制
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,就好像它是一个“正常”数字字段,毕竟它将使数字可见。

这样,这两个键盘在视觉上是完全相同的。

票数 0
EN

Stack Overflow用户

发布于 2021-08-20 14:37:54

您可以通过XML文件来实现这一点。只需将inputType添加到editText中即可。如果您需要密码输入类型,然后使用android:inputType="numberPassword",如果您想要纯号文本,那么您可以使用android:inputType="number"

代码语言:javascript
代码运行次数:0
运行
复制
<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberPassword"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68863065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档