本節要講的是,當咱們在一個EditText輸入電話或者網址仍是Email的時候,讓Android自動判斷,當咱們輸入的是電話,咱們點擊輸入內容將調用打電話程序,當咱們輸入是網址點擊將打開瀏覽器程序.而Linkify很好的解決了這個問題.咱們將分四步來完成這個Demo.java
Step 1:新建一個Android工程,命名爲LinkifyDemo.android
Step 2:打開main.xml文件,將其內容修改成以下內容:web
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="請輸入電話或者E-mail或者網址:"
/>
<EditText
android:id="@+id/et1"
android:layout_width="340px"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>瀏覽器
Step 3:在主應用程序LinkifyDemo.java裏代碼修改以下:app
package com.android.test;ide
import android.app.Activity;
import android.os.Bundle;
import android.text.util.Linkify;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;學習
public class LinkifyDemo extends Activity {
private EditText et;
private TextView tv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//獲取資源
et = (EditText)findViewById(R.id.et1);
tv = (TextView)findViewById(R.id.tv1);
//增長事件響應
et.setOnKeyListener(new EditText.OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
tv.setText(et.getText());
//判斷輸入的類型是哪一種,並與系統鏈接
Linkify.addLinks(tv, Linkify.WEB_URLS
Linkify.EMAIL_ADDRESSESLinkify.PHONE_NUMBERS);
return false;
}
});
}
}3d
Step 4:運行之.將出現以下效果:xml
以輸入爲電話爲例,也就是這張圖片,當咱們點擊這個號碼時候,系統將自動調用打電話的應用程序,以下圖:事件
擴展學習:
固然咱們還有更簡單的方法.就是在main.xml裏id爲tv的TextView裏申明這句話也就是:
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="webphoneemail"
/>
也能達到一樣的效果,.今天到此結束,謝謝你們