2010年11月21日 星期日

Android筆記_文字方塊(EditText)檢查電子郵件(Email)

第二次課程的作業總共有三個:
1. 不同Package切換Activity(可參考ola文piggy詳細步驟文)
2. 使用Thread實作倒數機制(可參考)
3. 製作輸入方塊Email檢查器(也就是本篇)

需求是:
1. 在文字方塊(EditText),輸入文字。
2. 若是符合電子郵件格式就顯示輸入正確。
3. 若不符合則顯示請輸入正確格式。

來看看程式碼:
1. 若要在EditText輸入過程中去監看每次輸入的內容,要使用txt1.setOnKeyListener。
2. 判斷Email可以使用Linkify.addLinks(文字內容,Linkify.EMAIL_ADDRESSES)←boolean。
3. 若Linkify.EMAIL_ADDRESSES傳回true則顯示"輸入正確",並將mail資訊顯示在lab2讓使用者方便點選。
4. 若Linkify.EMAIL_ADDRESSES為false,則顯示"請完整輸入Mail"。

運作畫面:

程式碼:

package ola.OlaTeach_emailcheck;

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 OlaTeach_emailcheck extends Activity {
/** Called when the activity is first created. */

EditText txt1;
TextView lab1;
TextView lab2;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

txt1 = (EditText) OlaTeach_emailcheck.this.findViewById(R.id.txt1);
lab1 = (TextView) OlaTeach_emailcheck.this.findViewById(R.id.lab1);
lab2 = (TextView) OlaTeach_emailcheck.this.findViewById(R.id.lab2);

txt1.setOnKeyListener(new EditText.OnKeyListener(){

@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
if (Linkify.addLinks(txt1.getText(), Linkify.EMAIL_ADDRESSES))
{
lab1.setText("輸入正確");
lab2.setText(txt1.getText());
}
else
{
lab1.setText("請完整輸入Mail");
}
return false;
}
});
}
}


另外,Linkify.addLinks判斷電子郵件是:Linkify.EMAIL_ADDRESSESLinkify
網址則是:WEB_URLS
電話則是:Linkify.PHONE_NUMBERS
若要同時判斷可以使用破折號分開。

又如果只是需要自動判斷TextView的內容是否是電子郵件、電話或網址,則可於layout定義android:autoLink="webphoneemail"

2 則留言:

piggy 提到...

無意中找到DDMS了!
Window→Open Perspective→DDMS

ola的家 提到...

原來在這邊....我一值以為我的是殘缺版 XD

張貼留言