我目前正在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中设置一个文本,其中包含href标签以及普通的http链接.对于ex,像这样的文本"please <a href=/'http://google.com' target='_blank'>click here</a>. or visit http://yahoo.com".
问题是我无法将两个属性设置在一起.如果我将Html.fromHtml设置为文本,则突出显示带有href标记的链接.但Linkfy属性不适用于"http://yahoo.com",反之亦然.是否有任何默认属性可以在TextView中启用href标记和普通链接.
谢谢,
我在 android textview 中有一个链接。我无法捕获链接点击事件。
String text = "http:://www.google.com is a google link";
textview.setText(text);
Run Code Online (Sandbox Code Playgroud)
“http:://www.google.com”这个字符串范围在文本视图中是可点击的。我想捕获特定的点击事件。
我尝试了以下方法。
public static void setTextView(TextView text, CharSequence sequence) {
UoloLogger.i(TAG, "Setting string :: "+sequence);
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
for(URLSpan span : urls) {
makeLinkClickable(strBuilder, span);
}
text.setText(strBuilder);
text.setMovementMethod(LinkMovementMethod.getInstance());
}
public static void makeLinkClickable(SpannableStringBuilder strBuilder, final URLSpan span) {
int start = strBuilder.getSpanStart(span);
int end = strBuilder.getSpanEnd(span);
int flags = strBuilder.getSpanFlags(span);
ClickableSpan clickable = new ClickableSpan() {
public void onClick(View …Run Code Online (Sandbox Code Playgroud) 如何onclicklistener通过autolinkWeb设置控制textView,或者换句话说,拦截autolink web OnClick事件?
例如,String text="Lucy is very nice.Here is her link.https://www.google.com";textview.setText(text);\n当点击“ https://www.google.com ”时,我可以捕获它并跳转到我的应用程序活动而不是网络浏览器。\nTextview 有一个属性 \xe2\x80\x9cautolink\xe2\x80\x9d .我将autolink设置为web.android:autoLink="web" 这样,android系统可以自动检测url。当点击url时,它会跳转到浏览器。现在点击时,我不想跳转到浏览器,我只是想跳转到我的应用程序活动并留在应用程序中。