Linkify
Linkify是一个辅助类,它可以自动地在TextView(或其派生类)中通过RegEx(正则表达式)模式匹配来创建超链接。当TextView中的内容匹配成功并生成超链接之后,TextView内容的下面就会出现下划线,单击则可以触发相应的操作,例如拨号,打开浏览器等。
Linkify使用
Linkify可以在xml中使用,也可以通过Java代码使用。
XML方式
通过给TextView设置android:autoLink属性来决定要匹配TextView的内 容,这样就可以在用户单击该TextView的时候直接使用浏览器打开http://www.baidu.com。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.ahjzu.cub.linkify.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="phone|email|web"
android:text="http://www.baidu.com" />
</RelativeLayout>
Java代码方式
通过Linkify.addLinks方法为TextView添加匹配内容的RegEx模式。
public class MainActivity extends AppCompatActivity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.text);
Linkify.addLinks(text, Linkify.EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS|Linkify.WEB_URLS);
}
}