我有一个 TextView,它呈现基本的 HTML,包含2 + 链接。我需要捕捉链接上的点击并打开链接——在我自己的内部 WebView 中(不在默认浏览器中)
处理链接渲染的最常用方法似乎是这样的:
String str_links = "<a href='http://google.com'>Google</a><br /><a href='http://facebook.com'>Facebook</a>";
text_view.setLinksClickable(true);
text_view.setMovementMethod(LinkMovementMethod.getInstance());
text_view.setText( Html.fromHtml( str_links ) );
但是,这会导致在默认的内部 Web 浏览器中打开链接(显示“完成操作使用...”对话框)。
我尝试实现一个 onClickListener,当链接被点击时它会被正确触发,但是我不知道如何确定哪个链接被点击了..。
text_view.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// what now...?
}
});
或者,我尝试创建一个定制的 LinkMovementMethod 类并实现 onTouchEvent..。
public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) {
String url = text.toString();
// this doesn't work because the text is not necessarily a URL, or even a single link...
// eg, I don't know how to extract the clicked link from the greater paragraph of text
return false;
}
有什么想法吗?
我想出了 一个解决方案,它解析出 HTML 字符串中的链接,并使它们可点击,然后让您响应的 URL。