撥打電話的簡單實現

  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_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);

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章