为电话号码输入设置密码的Edittext? (机器人)

时间:2010-01-07 01:48:02

标签: android android-edittext

如何使用手机输入和隐藏字符串的功能获取Edittext。我知道

android:inputType="textPassword"

隐藏字符串,而

android:inputType="phone"

打开拨号盘界面。

如何将两者合并?

5 个答案:

答案 0 :(得分:33)

android:password已被弃用,但AFAIK是唯一可以忽略android:inputType="phone|textPassword"的方法...

<EditText
    android:id="@+id/EditText01"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:password="true"
    android:inputType="phone" />

答案 1 :(得分:5)

我相信这就是你想要的?

android:inputType="numberPassword"

编辑:在问题(2010)时,这可能不在API中,但对于当代开发,它可用。

答案 2 :(得分:2)

我还没有找到解决这个问题的合适方案。 dtmilano接受的解决方案并不完全有效。如果EditText在横向模式下聚焦,您可以使用全屏键盘,则数字仍以明文显示,而不是屏蔽。

我花了很多时间浏览实际的TextView代码,这是一个问题的原因是他们显式检查InputType.TYPE_CLASS_TEXT的InputType,如果我没记错的话,TYPE_MASK_CLASS。因此,如果在这些边界中包含任何其他InputType(我认为TYPE_CLASS_TEXT和TYPE_MASK_CLASS使用的范围是第一个字节),那么它将不会被识别为需要屏蔽的密码。

我知道我说的很混乱。实际的代码更令人困惑。说实话,我对TextView的代码感到非常震惊。这是一个混乱的混乱,到处都是硬编码检查。糟糕的编码实践导致了这样的问题。

答案 3 :(得分:1)

无需使用已弃用的android:password即可解决此问题。请参阅我的回答here

答案 4 :(得分:0)

我没有尝试过这个,但也许可以将两者结合起来:

android:inputType="textPassword|phone"

因为inputType可以采用多个值。