Android打電話主要就是用內部類加上監聽器實現的,比較的簡單和粗糙,這裡沒有進行什麼美化。用到的是以前所用的MVC模式,其中main.xml就相當於view視圖層,主要是通過activity文件的調用從而達到視圖界面的搭建
首先是頁面的實現,頁面設計的只是功能用到的一些東西。在string.xml中定義文字提示信息,下面是string.xml的部分代碼:
- <string name="app_name">撥打電話</string>
- <string name="myPhone">請輸入您要撥打的號碼:</string>
- <string name="dial_phone">撥打</string>
然後在main.xml中,定義視圖層顯示頁面,以下是部分代碼:
- //定義顯示標簽的提示信息
-
- <TextView
-
- android:layout_width="fill_parent"
-
- android:layout_height="wrap_content"
-
- android:text="@string/myPhone"/>
-
- //輸入文本框的顯示風格
-
- <EditText
-
- android:layout_width="fill_parent"
-
- android:layout_height="wrap_content"
-
- android:id="@+id/phone_number"/>
-
- //按鈕的顯示及其按鈕的值
-
- <Button
-
- android:layout_width="wrap_content"
-
- android:layout_height="wrap_content"
-
- android:layout_gravity="center"
-
- android:id="@+id/dial_btn"
-
- android:text="@string/dial_phone" />
隨後就是監聽的注冊和實現,在activity文件中進行編譯,通過內部類方法實現監聽器的注冊和監聽實現。要實現撥打功能首先就要獲取用戶輸入的號碼,要處理的文本框輸入信息的值是一個EditText類型的值,但是傳過來的值是一個String字符串,很有可能裡面會有空格的出現,這時就需要進行字符串的去空格操作。這些操作進行完畢後需要進行判斷得到的字符串是否為空,如果是空值,電話肯定就撥打不出去了;若不為空就要封裝一個撥打電話的intent,並且將電話號以uri的形式傳入到activity對象中。以下是部分代碼:
- EditText numberEt;
-
- Button dialBtn;
-
-
-
- public void onCreate(Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.main);
-
-
-
- findViews();
-
- /*創建內部監聽類*/
-
- dialBtn.setOnClickListener(new OnClickListener() {
-
-
-
- @Override
-
- public void onClick(View v) {
-
- // TODO Auto-generated method stub
-
- //調用系統的撥號服務實現電話撥打功能
-
- String phone_number = numberEt.getText().toString();
-
- //對字符串進行去空格操作
-
- phone_numberphone_number = phone_number.trim();
-
- if(phone_number!=null && !phone_number.equals("")){
-
- //封裝一個撥打電話的intent,並且將電話號碼封裝成一個Uri對象傳入
-
- Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+ phone_number));
-
- PhoneActivity.this.startActivity(intent);
-
- }
-
-
-
- }
-
- });
-
- }
-
- public void findViews(){
-
- numberEt = (EditText) this.findViewById(R.id.phone_number);
-
- dialBtn = (Button) this.findViewById(R.id.dial_btn);
-
- }