我可以使用numberPassword输入类型并仍然可以看到输入吗?

时间:2016-10-15 21:46:27

标签: android android-softkeyboard

我可以使用numberPassword作为输入类型并仍然可以看到输入吗?

我的目标是让一个0-9键盘尽可能少的其他键(这就是为什么我更喜欢numberPassword而不是phone),但用户应该仍然可以看到他刚才键入。

这就是我所拥有的,但现在密码隐藏在星号后面。

android:digits="1234567890"
android:inputType="numberPassword"

注意:我还尝试setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD),它使输入可见,但将键盘从仅限数字更改为普通键盘。我需要他们键盘来显示数字 - 但是。

3 个答案:

答案 0 :(得分:2)

在Java中,只需执行此操作:

edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());

如果您想稍后隐藏密码,您只需执行此操作:

editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());

答案 1 :(得分:1)

有不同的方法可以解决这个问题

  1. 您可以使用TextInputEditText和TextInputLayout,如下所示

    <android.support.design.widget.TextInputLayout
         android:id="@+id/etPasswordLayout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         app:passwordToggleEnabled="true"
         android:layout_marginBottom="@dimen/login_spacing_bottom">
    
    <android.support.design.widget.TextInputEditText
        android:id="@+id/etPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/fragment_login_password_hint"
        android:inputType="textPassword"/>
    </android.support.design.widget.TextInputLayout>
    
  2. 使用passwordToggleEnabled,您可以在星号和密码值之间切换

    1. 您可以使用Transformation类切换密码星号和值,如下所示

      edittextObject.setTransformationMethod(PasswordTransformationMethod.getInstance());
      
    2. 您可以使用要在键盘中显示的值创建自定义键盘。您可以在我撰写的关于custom keyboard

    3. 的教程中了解如何实现这一目标

答案 2 :(得分:0)

这完成了这项工作:

uEditText = (EditText) findViewById(R.id.editText);
uEditText.setTransformationMethod(null);