您的位置:首页 > 移动开发 > Android开发

Android textView属性设置超链接

2015-02-26 09:31 381 查看
在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接。

代码如下:

第一种

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);

LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

TextView textView = new TextView(this);

String html = "有问题:\n";

html+="<a href='http://www.baidu.com'>百度一下</a>";//注意这里必须加上协议号,即http://。

//否则,系统会以为该链接是activity,而实际这个activity不存在,程序就崩溃。

CharSequence charSequence = Html.fromHtml(html);

textView.setText(charSequence);

textView.setMovementMethod(LinkMovementMethod.getInstance());

layout.addView(textView);

this.setContentView(layout,params);

}

第二种

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);

LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

TextView textView = new TextView(this);

String html = "有问题:\n";

html+="www.baidu.com";//这里即使不加协议好HTTP;也能自动被系统识别出来。

textView.setText(html);

textView.setAutoLinkMask(Linkify.ALL);

textView.setMovementMethod(LinkMovementMethod.getInstance());

layout.addView(textView);

this.setContentView(layout,params);

}

第三种

strings.xml中定义字串

<string name="blog"><a href="http://blog.csdn.net/jonahzheng">东子的博客</a></string>

布局中textview定义,并且textview的text引用stings.xml中定义的‘blog’

<TextView
android:id="@+id/tv_blog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/blog"
android:textColor="#F5F5F5"
android:textSize="18sp" />

java代码中

加入

[java]
view plaincopyprint?

TextView tv_blog =(TextView) findViewById(R.id.tv_blog);
<pre><code class="avrasm"></code><pre name="code" class="java">tv_blog.setMovementMethod(LinkMovementMethod<span class="preprocessor">.getInstance</span>())<span class="comment">;</span></pre>
<pre></pre>
<pre></pre>
<p></p>
</pre>

总结一下就是,以html显示超链接,必须写全url。以setAutoLinkMask(Linkify.ALL)可以不用不用写全,就能自动识别出来。

这几种方法,都得设置一下setMovementMethod,才会跳转。

另外setAutoLinkMask不仅 识别超链接,包括电话号码之类的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐