我试图部分隐藏一个数字在textview和录音时,一个图标,它应该显示完整的数字。我收到一个特定长度的字符串,只需要显示最后4位数字。
因此,默认情况下,如果我收到123456789abc
->,我应该显示*******89abc
,当在图标上录音时,它显示123456789abc
。
我用了一个2 textview来做,其中包含了全文,即. 123456789abc
和另一个带有*******89abc
的textview
然后我使用下面的代码:
_binding?.viewIcon?.setOnClickListener {
if(strHidden) {
_binding?.viewIcon?.setImageDrawable(AppCompatResources.getDrawable(requireContext(), R.drawable.ic_hide))
_binding?.strPartial?.visibility = View.INVISIBLE
_binding?.strNumber?.visibility = View.VISIBLE
strHidden = false
} else {
_binding?.viewIcon?.setImageDrawable(AppCompatResources.getDrawable(requireContext(), R.drawable.ic_view))
_binding?.strPartial?.visibility = View.VISIBLE
_binding?.strNumber?.visibility = View.INVISIBLE
strHidden = true
}
}
我使用下面的函数来创建带有隐藏字符的字符串。
private fun createHiddenStr(value: String) =
"*".repeat(value.length-4) + value.takeLast(4)
我想知道是否有一种方法可以只使用一个视图,而不是使用一个遮罩,这将是更好的使用2 textview
你知道吗?
1条答案
按热度按时间shyt4zoc1#
我还没有使用Kotlin的经验。在Java中,这就是我要做的。我会使用一个布尔值来检查点击文本的状态。
boolean clickedText = false
,因为在开始时文本没有被点击。将
String originalText;
定义为全局变量。我在textView上使用了一个点击监听器,但是你也可以在你的图标上使用它