gpt4 book ai didi

android - 在 span 中隐藏字符串内容

转载 作者:行者123 更新时间:2023-11-29 02:20:06 25 4
gpt4 key购买 nike

我有EditText内容:@<m id="36c03920-f411-4919-a175-a5b1eb616592">Full name</m>, how are you doing? .我想用 id 隐藏标签来自用户并仅保留 @Full name, how are you doing?显示文字时。还是getText应返回完整内容。

我找到了 ReplacementSpan对这种方法有用。第一步,尝试仅替换 </m>但是文本在两行中绘制了两次。第一行以 @ 开头第二个以<开头.也不能插入新文本。 getSize被多次调用并且draw被调用了两次。

我的方法正确吗?我是否应该尝试找到不同的解决方案并将 ID 存储在单独的集合中并在 getText() 上进行后处理? ?

代码:

    inner class RemoveTagSpan : ReplacementSpan() {
private val regexEndTag = Regex("</m>")
override fun draw(canvas: Canvas, text: CharSequence?, start: Int, end: Int, x: Float, top: Int, y: Int, bottom: Int, paint: Paint) {
text?.replace(regexEndTag, "")?.let { canvas.drawText(it, start, it.length - 1, x, y.toFloat(), paint) }
}

override fun getSize(paint: Paint, text: CharSequence?, start: Int, end: Int, fm: FontMetricsInt?): Int {
return text?.replace(regexEndTag, "")?.let { paint.measureText(it).roundToInt() } ?: 0
}
}

最佳答案

不确定这是否能准确地满足您的需求,但通常可以通过这种方式在 TextView 或 EditText(?) 中显示标记语言:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textView.setText(Html.fromHtml("@<m id="36c03920-f411-4919-a175-a5b1eb616592">Full name</m>, how are you doing?", Html.FROM_HTML_MODE_COMPACT));
} else {
textView.setText(Html.fromHtml("@<m id="36c03920-f411-4919-a175-a5b1eb616592">Full name</m>, how are you doing?"));

关于android - 在 span 中隐藏字符串内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795611/

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