在strings.xml中,我的关键字为
by_continuing_you_agree_terms_and_policy
弦
By continuing, you agree our Terms of Service and <a href="https://www.google.com">Privacy Policy</a>
这是TextView:
<TextView
android:id="@+id/createAccountTermsText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="8dp"
android:text="@string/by_continuing_you_agree_terms_and_policy"
android:textColor="#A1A1A1" />
但当我敲击它的时候什么都不会发生。
基于我添加的其他问题的“解决方案”
android:autoLink="web"
android:linksClickable="true"
不起太大作用所以我补充道:
binding.createAccountTermsText.movementMethod = LinkMovementMethod.getInstance()
也不起作用!
这不是我第一次看到Android的愚蠢之处。在这段时间里,Android似乎是一个非常可怕的应用程序开发软件。
发布于 2022-01-10 23:54:31
好吧,这是一个完整的解决方案:
val text = getString(R.string.by_continuing_you_agree_terms_and_policy)
val ss = SpannableString(text)
val clickTerms: ClickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
Log.d(tagg, "terms clicked")
binding.createAccountTermsText.clearFocus()
}
}
val clickPrivacy: ClickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
Log.d(tagg, "privacy clicked")
binding.createAccountTermsText.clearFocus()
}
}
val hintColorOne = ForegroundColorSpan(Color.parseColor("#FF0000"))
val hintColorTwo = ForegroundColorSpan(Color.parseColor("#FF0000"))
ss.setSpan(hintColorOne, 29, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
ss.setSpan(hintColorTwo, 50, 64, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
ss.setSpan(clickTerms, 29, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
ss.setSpan(clickPrivacy, 50, 64, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
binding.createAccountTermsText.text = ss
binding.createAccountTermsText.movementMethod = LinkMovementMethod.getInstance()
ints代表第一个/最后一个字符,这意味着颜色和单击区域在它们之间。
注意1:对两个跨跨使用hintColorOne和hintColorTwo而不是类似的hintColorOne是必要的,因为对这两个跨跨只使用一个将只使第二个跨工作。在所有这些惊喜中开发android应用程序,实在是一种简单的快乐!
注2:使用clickableSpan将禁用定义的颜色并使用XML定义的android:textColorLink="#FF0000"
中的
发布于 2022-01-11 00:52:28
android:autoLink="web"
使类似于文本中的http://www.google.com
的内容可点击。不是<a href="https://www.google.com">Privacy Policy</a>
如果要在代码中使用"a href“,则需要使用
val html=getString(R.string.linked_string)
textview.movementMethod=LinkMovementMethod.getInstance()
textview.text=Html.fromHtml(html, Html.FROM_HTML_MODE_COMPACT)
在string.xml中,将<
替换为<
别忘了关掉android:autoLink="web"
。
https://stackoverflow.com/questions/70659862
复制相似问题