package EX05_02.txt;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class EX05_02 extends Activity {
private Button mButton;
private EditText mEditText;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initApp();
}
private void initApp() {
// TODO Auto-generated method stub
mButton = (Button)findViewById(R.id.Button01);
mEditText = (EditText)findViewById(R.id.EditText01);
mButton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
String strInput = mEditText.getText().toString();
if (isPhoneNumber(strInput) == true) {
Intent mIntent = new
Intent("android.intent.action.CALL",
Uri.parse("tel:"+strInput));
startActivity(mIntent);
mEditText.setText("");
} else {
mEditText.setText("");
Toast.makeText(EX05_02.this,
"输入的电话格式不对",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private boolean isPhoneNumber(String phoneNumber) {
// TODO Auto-generated method stub
boolean isValid = false;
String expression1 = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$";
String expression2 = "^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";
CharSequence strInput = phoneNumber;
Pattern pattern1 = Pattern.compile(expression1);
Matcher matcher1 = pattern1.matcher(strInput);
Pattern pattern2 = Pattern.compile(expression2);
Matcher matcher2 = pattern2.matcher(strInput);
if (matcher1.matches() | matcher2.matches()) {
isValid = true;
}
return isValid;
}
});
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="EX05_02.txt"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".EX05_02"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!-- 添加拨打电话权限 -->
<uses-permission
android:name = "android.permission.CALL_PHONE"
/>
</manifest>
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"
>
<EditText
android:id="@+id/EditText01"
android:layout_width="250dip"
android:layout_height="wrap_content">
</EditText>
<Button
android:text="拨打电话"
android:id="@+id/Button01"
android:layout_width="100dip"
android:layout_height="wrap_content">
</Button>
</LinearLayout>