本節要講的是,當我們在一個EditText輸入電話或者網址還是Email的時候,讓android自動判斷,當我們輸入的是電話,我們點擊輸入內容將調用打電話程序,當我們輸入是網址點擊將打開浏覽器程序.而Linkify很好的解決了這個問題.我們將分四步來完成這個Demo.
Step 1:新建一個android工程,命名為LinkifyDemo.
Step 2:打開main.XML文件,將其內容修改為如下內容:
<?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裡代碼修改如下:
package com.android.test;
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_ADDRESSES|Linkify.PHONE_NUMBERS);
return false;
}
});
}
}
Step 4:運行之.將出現如下效果:
以輸入為電話為例,也就是右上角這張圖片,當我們點擊這個號碼時候,系統將自動調用打電話的應用程序,如下圖:
擴展學習:
當然我們還有更簡單的方法.就是在main.XML裡id為tv的TextVIEw裡申明這句話也就是:
<TextVIEw
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="web|phone|email"
/>
也能達到同樣的效果,呵呵.今天到此結束,謝謝大家!