我有" Android是一个软件堆栈 " 的文字.在本文中,我想设置" 堆栈 "文本是可点击的.从某种意义上说,如果你点击它,它将被重定向到一个新的活动(而不是在浏览器中).
我试过但我没有得到.
我目前正在TextView中呈现HTML输入,如下所示:
tv.setText(Html.fromHtml("<a href='test'>test</a>"));
Run Code Online (Sandbox Code Playgroud)
显示的HTML是通过外部资源提供给我的,所以我不能像我一样改变它,但我当然可以对HTML进行一些正则表达式的修改,比如将href值更改为其他内容.
我想要的是能够直接从应用程序中处理链接点击,而不是让链接打开浏览器窗口.这可以实现吗?我猜测可以将href-value的协议设置为类似"myApp://"的东西,然后注册一些可以让我的应用程序处理该协议的东西.如果这确实是最好的方式,我想知道这是怎么做的,但我希望有一个更简单的方法来说,"当在这个文本视图中点击链接时,我想提出一个接收的事件链接的href值作为输入参数"
我有一个textview,如下所示:
txtByRegistering.setText("By Registering you agree to terms and condition and privacy policy");
Run Code Online (Sandbox Code Playgroud)
这只是一个大文本.所以,我用marquee水平滚动文本.工作正常.我的问题是,如何在单击选定的滚动文本时调用click事件.
说出来:
"Terms",我必须调用另一个新的Intent(具有术语的webview活动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);
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,当我点击"条款"这个词时它会把我带到浏览器但是我希望转到新的活动.
我想单独点击文本的几个部分,例如在下面的文本中:
天气预报一天,两天,七天.
我希望能够单独点击文本的三个不同区域,以获得一天,两天或七天的预测.我不想让它转到网页网址,只是抓住显示TextView的活动内部文本区域的点击.