Я пытаюсь создать TextView
, который содержит ссылку, чтобы открыть другое действие. ClickableSpan
не называет это onClickListener
как бы то ни было. Я искал похожие вопросы и не нашел решения, поэтому мне интересно, не является ли это чем-то особенным в моем коде. Я сделал несколько исправлений, я прочитал, что точное расположение параметра textView.movementMethod = LinkMovementMethod.getInstance()
имеет значение. Мне интересно, если LinkMovementMethod
является проблемой, так как я не присоединяю URL или что-то еще, просто другое действие? Я запускаю этот код в потоке пользовательского интерфейса во фрагменте
Вот текстовый код / интерактивный код span:
val message : TextView = main_activity.findViewById(R.id.message)
val ss = SpannableString("Not finding what you're looking for? Try refining your search, or create your own group!")
val clickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
widget.setOnClickListener {
Log.d("TEST","This should print but does not")
}
}
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.isUnderlineText = true
}
}
ss.setSpan(clickableSpan, 66, 88, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
message.isClickable = true
message.linksClickable = true
message.textSize = 23.toFloat()
message.highlightColor = Color.TRANSPARENT
message.text = ss
message.movementMethod = LinkMovementMethod.getInstance()
}
И текстовое представление в XML:
<TextView
android:id="@+id/message"
android:layout_width="250dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.186" />