Android 要为getSpans、getSpanStart和getSpanEnd导入什么?

Android 要为getSpans、getSpanStart和getSpanEnd导入什么?,android,android-studio,kotlin,Android,Android Studio,Kotlin,我指的是这个。我收到了getspan、getSpanStart、getSpanEnd和it的未解决的引用错误。我需要进口什么包装?我已经导入了这些: import android.os.Bundle import android.text.* import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan import android.text.style.ForegroundColorS

我指的是这个。我收到了
getspan
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()
        }

    }
}
您可以将该方法用于对象。
您正试图将其应用于字符串
termsText

val annotations=termsText.getspan…
更改为:

    val spannableString = SpannableString(termsText)
    val annotations = spannableString.getSpans(0, termsText.length, Annotation::class.java)

android.text.span
具有
getSpanStart
getSpanEnd
,您将其导入为
android.text.*
,您确定要将文本键入为
spandstring
吗?我正在将文本键入为
SpannableString
。我用完整的代码更新了帖子。