gpt4 book ai didi

Android Edittext完全隐藏密码

转载 作者:行者123 更新时间:2023-12-01 23:20:12 30 4
gpt4 key购买 nike

通常为用户输入任何有风险的内容的字段设置 inputType=textPassword,例如...密码。当用户键入它时,他们键入的每个字符都会短暂闪烁,让用户知道实际输入的是什么,然后变成一个星号,这样不经意的观察者( spy )就很难看到键入的内容。

通常这工作正常。

我有一个特殊情况,出于安全原因,不得闪烁该字符。相反,我只想显示星号。

我可以通过 setOnKeyListener() 单独处理每个点击,但这看起来应该很容易。但是我没有看到任何内置解决方案。请告诉我我遗漏了什么。

最佳答案

感谢所有评论、督促和指出优秀技巧的人。使用这些宝贵的帮助,我能够做一些实际上非常简单的事情,而且似乎非常适合这种情况。

诀窍是覆盖 PasswordTransformationMethod 并强制您的 EditText 使用这个新方法。原始的 charAt() 方法使用 Spannable,它会在隐藏它之前等待一秒半。通过覆盖该方法,您的代码可以做一些更简单的事情。

这是自定义类的示例(在 kotlin 中)

class ReallyHideMyPassword : PasswordTransformationMethod() {

companion object {
const val HIDE_CHAR = '*'
}

override fun getTransformation(source: CharSequence, view: View): CharSequence {
return PasswordCharSequence(source)
}

inner class PasswordCharSequence (private val source: CharSequence) : CharSequence {

override val length: Int
get() = source.length

override fun get(index: Int): Char = HIDE_CHAR

override fun subSequence(startIndex: Int, endIndex: Int): CharSequence {
return source.subSequence(startIndex, endIndex)
}
}
}

并在您的 EditText 中使用它:

    val et = findViewById<EditText>(R.id.my_password_edittext)
et.transformationMethod = ReallyHideMyPassword();

原来这类似于https://stackoverflow.com/a/23110194/624814 (感谢 Per.J!),但现在您在 Kotlin 中有了它。它是如此相似,以至于这个问题可能会因为太相似而被关闭。但是问题的措辞应该比其他帖子更容易帮助人们找到答案。

关于Android Edittext完全隐藏密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68196448/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com