Android 中TextView 添加超链接

2014-04-23 08:23

1、 使用android:autoLink="all" 只需在TextView中加入这个属性,而在TextView里面写的文字中包含网址、电话、email的会自动加入连接地址。 

如: 

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 

android:id="@+id/text1" 

android:layout_width="match_parent" 

android:layout_height="match_parent"

android:autoLink="all" 

android:text="@string/link_text_auto"

/> 

2、 使用<string name=””><a href=””></a></string>标签,建立超链接:

如: 

<string name="link_text_manual"><b>text2:</b> This is some other 

text, with a <a href="http://www.google.com">link</a> specified 

via an <a> tag.  Use a "tel:" URL 

to <a href="tel:4155551212">dial a phone number</a>. 

</string> 

别忘了 

TextView t2 = (TextView) findViewById(R.id.text2); 

t2.setMovementMethod(LinkMovementMethod.getInstance()); 

3、 在java文件中使用HTML语言:

如:

TextView t3 = (TextView) findViewById(R.id.text3); 

t3.setText(Html.fromHtml("<b>text3:</b>Text with a " 

+ "<a href="http://www.google.com">link</a> " 

+ "created in the Java source code using HTML.")); 

t3.setMovementMethod(LinkMovementMethod.getInstance()); 

4、 字符串截取方法 

SpannableString ss = new SpannableString("text4: Click here to dial the phone."); 

ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

ss.setSpan(

new URLSpan("tel:4155551212"),13, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

TextView t4 = (TextView) findViewById(R.id.text4); 

t4.setText(ss); 

t4.setMovementMethod(LinkMovementMethod.getInstance()); 

5、 Android中我们为了实现文本的滚动可以在ScrollView中嵌入一个TextView,其实TextView自己也可以实现多行滚动的,毕竟ScrollView必须只能有一个直接的子类布局。只要在layout中简单设置几个属性就可以轻松实现 

  <TextView  

    android:id="@+id/tvCWJ"  

    android:layout_width="fill_parent"  

    android:layout_height="wrap_content"  

    android:scrollbars="vertical"   <!--垂直滚动条 --> 

    android:singleLine="false"       <!--实现多行 --> 

    android:maxLines="15"            <!--最多不超过15行 --> 

    android:textColor="#FF0000" 

  />  

   当然我们为了让TextView动起来,还需要用到TextViewsetMovementMethod方法设置一个滚动实例,代码如下 

TextView tvAndroid123 = (TextView)findViewById(R.id.tvCWJ);   

tvAndroid123.setMovementMethod(ScrollingMovementMethod.getInstance()); 

ad_link = (TextView) findViewById(R.id.ad_link);   

ad_link.setText(Html.fromHtml("<a href=""mce_href=""""+mURL.getLink()+"">"+Html.fromHtml(mURL.getLabel()+"</a>")));   

ad_link.setMovementMethod(LinkMovementMethod.getInstance());

http://blog.csdn.net/t12x3456/article/details/7753261

 

^