2013-08-04 163 views
1

我有一个网址,我想只显示一个单词,点击后从我的alertdialog打开网页浏览器。除了现在显示完整的网址外,一切工作正常。我不知道如何隐藏这个。这是我的java文件中的代码。隐藏SpannableString网址

Tv = ((TextView) view.findViewById(R.id.textviewH)); 
    SpannableString s = new SpannableString("www.Google.com"); 
    Linkify.addLinks(s, Linkify.WEB_URLS); 
    if (Tv != null) 
    { 
     Tv.setText(s); 
     Tv.setMovementMethod(LinkMovementMethod.getInstance()); 

    } 

我试图与

<ahref="www.google.com">Google</a> 

更换www.google.com但这并不甚至编译。必须有一些SpannableString的输入参数配置允许这样做。有任何想法吗?

回答

0

你可以手工设置URL跨度:

SpannableString s = new SpannableString("Link to Google"); 
s.setSpan(new URLSpan("http://www.google.com"), 0, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

或者从HTML创建:

Spanned s = Html.fromHtml("<a href=\"http://www.google.com\">Google</a>"); 
+0

我想你列出的第一个选项和超链接被屏蔽,但不拉Web浏览器的链接点击时。问题是什么? –

+0

我刚刚尝试过第二个选项,它来自出色的fromHtml。 [致敬](http://i43.tinypic.com/2vct5hy.jpg) –

1

您可以轻松地做到这一点。这是我的例子。

我已经在你的问题中编辑了这个解决方案。

Tv = ((TextView) view.findViewById(R.id.textviewH)); 
SpannableString s = new SpannableString("Google"); 

if (Tv != null) 
{ 
    Tv.setText(s); 
text.setSpan(new URLSpan("http://www.google.com/"),0, 5, 0); 

Tv.setMovementMethod(LinkMovementMethod.getInstance()); 
Tv.setText(text, BufferType.SPANNABLE); 
} 

我希望你将是这个答案快乐......

+0

我试过这个,超链接被屏蔽了,但是点击后链接并没有拉起网页浏览器,尽管这个词响应被简单点击闪烁。问题是什么? –

+0

我想你忘了在你的Manifest.xml文件中添加Internet权限。 试试这个。 –

+0

谢谢,我刚刚更新了我的清单文件,现在代码正常工作。它总是很好的学习不止一种方式做某事 [礼炮](http://i43.tinypic.com/2vct5hy.jpg) –