通過撥打到電話案例學習 intent 的使用方法.
由於是小程式,所以採用 UI介面-> Activity->業務層 自上而下的順序來編寫代碼.
由於要用到系統功能,要在AndroidMainfest.xml 加入 <uses-permission android:name="android.permisson.CALL_PHONE" />
1.介面設計 res/layout/main.xml
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="@string/textMobileString"/>
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:hint="@string/edtMobileNumString"
android:id="@+id/edtMobileNum"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnCall"
android:text="@string/btnCallString"/>
</LinearLayout>
2.res/values/strings.xml 加入字串變數
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, PhoneCallActivity!</string>
<string name="app_name">PhoneCall</string>
<string name="textMobileString">請輸入你要撥打的電話號碼:</string>
<string name="edtMobileNumString">請輸入號碼...</string>
<string name="btnCallString">撥打</string>
</resources>
3.Activity 的編寫
PhoneCallActivity.java
package com.PhoneCall.melody;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class PhoneCallActivity extends Activity implements OnClickListener {
private EditText editText = null; // 號碼編輯控制項
private Button btnCall = null; // 撥打按鍵
private String mobileNum = null; // 號碼變數
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
/**
* 擷取控制項
*/
editText = (EditText) this.findViewById(R.id.edtMobileNum);
btnCall = (Button) this.findViewById(R.id.btnCall);
mobileNum = editText.getText().toString(); // 擷取號碼
btnCall.setOnClickListener(this); // 設定監聽事件
}
@Override
public void onClick(View v) {
switch (v.getId()) {
/**
* 實現撥打到電話
*/
case R.id.btnCall:
/**
* Intent.ACTION_CALL --通知系統該intent(意圖)的動作
* Uri.parse("tel:" +mobileNum ) Uri 為統一資源識別項, tel 通知系統 後面接的為電話號碼
*/
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
+ mobileNum));
PhoneCallActivity.this.startActivity(intent);
break;
default:
break;
}
}
}