Перечитал много статей, чтобы хоть как-то имел представление на реализацию функции, с помощью которой пользователь смог выделять фрагменты из текста и я наткнулся на некие источники моего решения. Проблема в том, что я новичок и не знаю как реализовать это на java. Могли бы вы помочь с примером реализации.
Так же не уверен, на каком языке это написано Java/Kotlin.
Вот исходник:
val text = "[Toto] is [doing a lot of] stuff at the same time."
val spanStack = Stack<Pair<Int, Int>>()
var index = 0
text.forEach {
when (it) {
'[' -> spanStack.push(index to index)
']' -> spanStack.push(spanStack.pop().first to index)
else -> index++
}
}
val spannableString = text
.replace("[\\[\\]]".toRegex(), "")
.let { SpannableString(it) }
.apply {
spanStack.forEach {
setSpan(
BackgroundColorSpan(Color.YELLOW),
it.first,
it.second,
SpannableString.SPAN_INCLUSIVE_INCLUSIVE
)
}
}
textView.text = spannableString
результат:
Не знаю как реализовать с обработчиком. То есть пользователю необходимо самому кликать и это должно выделяться как на картинке выше