2014-08-30 78 views
0

我正在创建Android浏览器,并在我的浏览器中创建了收藏夹页面。 在我最喜欢的页面中,我有一个EditText,我在其中插入我想添加的网站的地址,一个删除按钮,删除所有收藏夹和一个TextView,显示添加的网站。如何使TextView可点击但不能用手机的浏览器启动

我的问题是......我如何让地图显示在TextView中成为链接,不仅是字符串,而是要在我的浏览器中打开?

到目前为止,我所有的尝试都是通过手机的浏览器打开它。我的浏览器是这样构建的:一个菜单,它是一个OnListItemClick,我可以选择HomePage,它具有可以浏览互联网的主要功能,可以使用后退和前进,刷新按钮。 在菜单中,在主页之后,我有收藏夹,历史记录和设置。我需要它来启动主页,并访问该网站,当我点击收藏夹TextView的链接。任何人都可以给我一个想法如何做到这一点?我相信我需要为此做出一个巨大的方法,但我不知道如何开始。

+0

这将是很好,如果你可以格式化你的问题,以添加一些空间,也使您的问题在一个单独的段落。这样你的问题会吸引更多的人:) – hoomi 2014-08-30 10:57:57

+0

感谢您的提示。完成 – 2014-08-30 11:00:01

+0

为什么你不能在列表视图中拥有最爱? – Breadbin 2014-08-30 12:13:47

回答

0

知道这很晚了。只是觉得别人也可能会觉得这很有用。

你可以实现你自己的ClickableSpan来实现这一点。您可以从头创建一个Spannable并分配给TextView像:

Spannable text = Spannable.newSpannable("Source text with link"); 
ClickableSpan link = new ClickableSpan { 
    public abstract void onClick (View widget) { 
     // Implement your own link behaviour 
    } 
} 
text.setSpan(clickable, startPos, endPos, flags); 
textView.setText(text); 

或者,如果你的来源是HTML,您可以使用Html.fromHtml("Source text with <a href='whatever'>link</a>")其解析HTML并转换成链接为URLSpan你。然后,您需要用您自己的ClickableSpan替换上述所有URLSpan。 (见Spanned#getSpansSpannable

这可能很乏味。因此我创建了一个库来简化这个问题。随着Textoo就可以实现同样喜欢:

Spanned linksLoggingText = Textoo 
    .config("Links: <a href='http://www.google.com'>Google</a>") 
    .parseHtml() 
    .addLinksHandler(new LinksHandler() { 
     @Override 
     public boolean onClick(View view, String url) { 
      Log.i("MyActivity", "Linking to google..."); 
      return false; // event not handled. Continue default processing i.e. link to google 
     } 
    }) 
    .apply(); 
相关问题