如何在隐藏和查看密码之间切换

新手上路,请多包涵

有没有一种聪明的方法可以让用户在 android EditText 中隐藏和查看密码?许多基于 PC 的应用程序允许用户执行此操作。

原文由 jacknad 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 379
2 个回答

您可以动态更改 TextView 的属性。如果您将 XML 属性 android:password 设置为 true,如果您将其设置为 false,则视图将显示点,则显示文本。

使用 setTransformationMethod 方法,您应该能够从代码中更改此属性。 (免责声明:我没有测试该方法在视图显示后是否仍然有效。如果您遇到问题,请给我留言让我知道。)

完整的示例代码是

yourTextView.setTransformationMethod(new PasswordTransformationMethod());

隐藏密码。要显示密码,您可以设置现有的转换方法之一或实现一个空的 TransformationMethod ,它对输入文本不做任何事情。

 yourTextView.setTransformationMethod(new DoNothingTransformation());

原文由 Janusz 发布,翻译遵循 CC BY-SA 3.0 许可协议

我使用了一个 OnClickListener(),它与我想用作工具的按钮相关联。

 private EditText email_et, contraseña_et;
protected void onCreate(Bundle savedInstanceState) {
....
contraseña_et = (EditText) findViewById(R.id.contraseña_et);
....
vercontra_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int inputType = contraseña_et.getInputType();
            if (inputType == 129){
                contraseña_et.setInputType(1);
            } else {
                contraseña_et.setInputType(129);
            }
            contraseña_et.setSelection(contraseña_et.getText().length());
        }
    });

阅读文档时,int 值似乎有所不同,所以我进行了调试以找到正确的值,它工作得非常棒,而且这种方式更容易一些。

[Contraseña 是西班牙语的密码,顺便说一句]

原文由 Nkogmzra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题