我有一个呈现基本HTML的TextView,其中包含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。
喵喵时光机
有只小跳蛙
相关分类