【发布时间】:2014-03-26 09:49:16
【问题描述】:
我有一个如下的文本视图:
txtByRegistering.setText("By Registering you agree to terms and condition and privacy policy");
这只是一个大文本。所以,我使用 marquee 水平滚动文本。效果很好。我的问题是,如何在单击选定的滚动文本时调用单击事件。
说前任:
- 当用户在上面的文本视图中点击“Registering”这个词时,我必须调用新的Intent。
- 当用户点击单词
"Terms"时,我必须 调用另一个新的 Intent(以 webview 作为术语的 Activity 具有URL Link)。
由于“注册”和“条款”是 Web URL,我尝试了以下内容:
String mRegDesc = "By registering you agree to the " + "<a href=\""
+ Constant.URL + "/terms_and_conditions"
+ "\">Terms of Use</a> " + "and " + "<a href=\"" + Constant.URL
+ "/privacy" + "\">Privacy Policy</a> ";
txtByRegistering.setText(Html.fromHtml(mRegDesc));
txtByRegistering.setMovementMethod(LinkMovementMethod.getInstance());
txtByRegistering.setSelected(true);
txtByRegistering.setTypeface(mTyFaceOverLockReg, Typeface.BOLD);
上面的代码工作正常,当我点击“条款”这个词时它把我带到浏览器但我想去新的活动。
【问题讨论】:
-
我认为您需要
ClickableSpan,请在stackoverflow.com/questions/20988905/… 上查看我的回答 -
@Shayanpourvatan 我可以为单个
SpannableString设置多个ClickableSpan吗?你能更详细一点吗?并且 SpannableString 支持 API 级别 8? -
是的,您可以在一个字符串上设置多个 Clickabale,此方法添加到 API 级别 1 以获取更多信息,请参阅 developer.android.com/reference/android/text/style/… 和 stackoverflow.com/questions/9982241/…
标签: android string dynamic textview clickablespan