Я имею в виду эту документацию .Я получаю неразрешенные ошибки ссылок для getSpans
, getSpanStart
, getSpanEnd
и it
.Какой пакет я должен импортировать?Я уже импортировал это:
import android.os.Bundle
import android.text.*
import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
import android.text.style.URLSpan
import androidx.core.content.ContextCompat
Как еще один вопрос, вообще, как люди выясняют, что импортировать?Часто он жалуется на неразрешенную ссылку, подобную этой, и мне трудно найти нужные пакеты для импорта.
=============================================================================
фрагмент полного кода
import android.graphics.Typeface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.*
import android.text.Spanned
import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
import android.text.style.URLSpan
import android.view.View
import android.widget.Toast.LENGTH_SHORT
import androidx.core.content.ContextCompat
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_login.*
import android.text.SpannableStringBuilder
class HtmlLink(val urlSpan: URLSpan, val spanStart: Int, val spanEnd: Int)
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val termsText = getText(R.string.terms)
val spannableString = SpannableString(termsText)
val annotations = termsText.getSpans(0, termsText.length, Annotation::class.java)
val clickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
Snackbar.make(window.decorView.rootView, "URL is clicked", LENGTH_SHORT).show()
}
override fun updateDrawState(ds: TextPaint?) {
ds?.isUnderlineText = false
}
}
annotations?.find { it.value == "terms_link" }?.let {
spannableString.apply {
setSpan(
clickableSpan,
termsText.getSpanStart(it),
termsText.getSpanEnd(it),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
setSpan(ForegroundColorSpan(
ContextCompat.getColor(this@LoginActivity, R.color.colorAccent)),
termsText.getSpanStart(it),
termsText. getSpanEnd(it),
0
)
}
}
textView_terms.apply {
text = spannableString
movementMethod = LinkMovementMethod.getInstance()
}
}
}