Android数字密码字段
我有一个EditText字段,它需要是一个数字密码字段。 在纵向模式下一切正常; 不在风景。 当用户selectEditText字段时,用户界面放大字段,当我键入所有的字符是可见的。
我还需要一个数字键盘。 我尝试将inputtypes设置为文本密码|编号。 如果我删除“数字”选项一切正常; 否则不。
有什么build议么?
这个问题可以解决,而不使用弃用的android:password
。 使用下面的代码片段,但不要颠倒调用序列:
EditText editText = (EditText) findViewById(R.id.MyEditText); editText.setInputType(InputType.TYPE_CLASS_NUMBER); editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
我find一个最简单的解决scheme,需要隐藏的数字文本条目(密码样式)是使用: 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"/>
要解决密码在横屏模式全屏编辑器中可见的问题(如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" />
这个如何使input密码有提示,而不是转换成* !!。
在XML上:
android:inputType="textPassword" android:gravity="center" android:ellipsize="start" android:hint="Input Password !."
感谢:芒果和rjrjr的洞察力:D。
我认为你应该使用android:password="true"
和android:numeric="integer"
。 但是,正如Android文档所述(在R.attr.html
,而不是在TextView
文档中),这些文档已被删除,您应该使用android:inputType
。 inputType需要标志,所以你可以混合多种可能性。 而且我认为android:inputType="number | password"
应该适合你。
如果你也想支持旧的设备,你应该指定android:password="true"
。