android之字符串自动关联相应程序,主要有email/phone/web

你是不是很希望自己的TextView中的文本在遇到电话号码或者网页地址的时候,能够显示成为一个链接,然后我们一点击就会进入相应的打电话或者浏览器应用呢?

如果你的回答是yes,那么我们就一起看看我这里的应用吧。代码如下:

布局文件linkify.xml代码:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <!-- 如果我们想在xml布局文件中设置的话 android:autoLink="all"这里就是设置自动关联的的地方, 主要取值有:none/all/web/email/phone/map --> <TextView android:id="@+id/textView0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="15801189818" ></TextView> </LinearLayout>

activity的代码:

package cn.com.chenzheng_java; import android.app.Activity; import android.os.Bundle; import android.text.util.Linkify; import android.widget.TextView; public class LinkifyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linkify); TextView textView = (TextView) findViewById(R.id.textView0); /** * Linkify类的addLinks方法,可以为我们添加一个匹配或者多个匹配(多个匹配之间是通过|分隔的), * 当我们的内容和规则符合时,系统便会为我们自动调用系统中相应的应用进行处理。 */ Linkify.addLinks(textView, Linkify.PHONE_NUMBERS|Linkify.WEB_URLS); } }

就这么简单,其实本质上,我们就用了Linkify类的addLinks方法。

addLinks方法会将我们传递进去的textView的内容获取到,然后找到里面匹配的字符,用链接的方式展现给用户,用户一点击链接,便会通过系统自己的一些Intent将请求发给要启动的应用。

你可能感兴趣的:(android之字符串自动关联相应程序,主要有email/phone/web)