我有一个EditText字段,需要是数字密码字段。在竖屏模式下一切正常;但在横屏模式下不行。当用户选择EditText字段时,UI会放大到该字段,当我输入时所有字符都可见。
我还需要一个数字键盘。我尝试将输入类型设置为文本密码|数字。如果我删除"number"选项,则一切正常;否则不行。
有什么建议吗?
我有一个EditText字段,需要是数字密码字段。在竖屏模式下一切正常;但在横屏模式下不行。当用户选择EditText字段时,UI会放大到该字段,当我输入时所有字符都可见。
我还需要一个数字键盘。我尝试将输入类型设置为文本密码|数字。如果我删除"number"选项,则一切正常;否则不行。
有什么建议吗?
不需要使用已弃用的 android:password
,可以解决此问题。请使用以下代码片段,但请不要更改调用序列:
EditText editText = (EditText) findViewById(R.id.MyEditText);
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
editText.setTransformationMethod()
之后使用 editText.setSingleLine(true);
会导致点号不再显示!! - Someone Somewhere我发现用 android:inputType="numberPassword"
可以轻松地隐藏数字文本输入(密码样式)。
这是完整的适用于我的示例:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyLargeTextBox"
android:background="@android:drawable/editbox_background_normal"
android:id="@+id/txtWebServicePIN"
android:layout_row="3"
android:layout_column="2"
android:layout_columnSpan="2"
android:minWidth="100dp"
android:maxWidth="100dp"
android:inputType="numberPassword"
android:maxLength="6"/>
numberKeyboard
不会弹出“仅数字”软键盘。 - Srujan Barai为了解决在横屏模式下全屏编辑器中密码可见的问题(如Marcus所描述),您可以添加以下行以禁用全屏编辑器:
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
editText.setTypeface(Typeface.MONOSPACE);
使用已经过时的方法
android:password="true"
可能可以解决您的问题。
在XML中尝试此操作,清单文件不会发生任何变化。
<EditText
android:id="@+id/etPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:singleLine="true" />
如何制作带有提示的输入密码,而不会被转换为*!!。
在XML中:
android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."
试试这个:
EditText input = (EditText) findViewById(R.id.input);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
更多信息在这里
我认为你应该使用android:password="true"
和android:numeric="integer"
。但正如Android文档所述(在R.attr.html
中,而不是TextView
文档中),这些已经过时了,你应该使用android:inputType
。inputType接受标志,因此你可以混合多种可能性。我认为android:inputType="number | password"
对你有用。
如果你想支持旧设备,你应该指定android:password="true"
。