android 无法激发coloredText的单击事件

kokeuurv  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(116)

我有一个在文本视图中创建彩色和可点击文本的方法。我不能在点击彩色文本时触发onClick。我不明白为什么它不起作用。
MainFragment.kt

textview.text = formatTextWithColorAndClickableSpan(
            requireContext(), getString(R.string.about_private_data_save), "Aydınlatma Metnini", onClickDescription
        )

private val onClickDescription = fun() {
        PermissionDialogType.PRIVATE_DIALOG  
 }

方法:

fun formatTextWithColorAndClickableSpan(
    context: Context,
    fullText: String,
    coloredText: String,
    onClick: () -> Unit
): SpannableString {
    val spannableString = formatTextWithColor(context, fullText, coloredText)

    val startIndex = fullText.indexOf(coloredText)
    val endIndex = startIndex + coloredText.length
    val clickableSpan = object : ClickableSpan() {
        override fun onClick(p0: View) {
            onClick()
        }

        override fun updateDrawState(ds: TextPaint) {
            super.updateDrawState(ds)
            ds.isUnderlineText = true
        }
    }
    spannableString.setSpan(clickableSpan, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

    return spannableString
}

我也试过这些:

textview.text = formatTextWithColorAndClickableSpan(
            requireContext(), getString(R.string.about_private_data_save), "Aydınlatma Metnini", ::onClickDescription
        )

private fun onClickDescription() {
    PermissionDialogType.PRIVATE_INFO
}

yqlxgs2m

yqlxgs2m1#

我解决了这个代码行的问题。

textview.movementMethod = LinkMovementMethod.getInstance()

相关问题