Android打電話程式(根據新增按鈕監聽的3種不同方式分別實現)
方式一:(較麻煩不推薦)
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;
/**
* 方式一:定義一個內部類,實現OnClickListener介面
* 在主函式中給按鈕新增監聽器setOnClickListener(new MyOnclickListener())
* 引數是內部類的例項物件
*/
public class MainActivity1 extends Activity {
private EditText numET;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numET = (EditText) findViewById(R.id.numET);
Button callBT = (Button) findViewById(R.id.callBT);//獲取按鈕物件
callBT.setOnClickListener(new MyOnclickListener());//新增監聽器
}
//由於MyOnclickListener類定義在外邊不能使用findViewById方法,因為此方法是在View裡的,所以將此類定義成內部類
private class MyOnclickListener implements OnClickListener {
private EditText numET;
public void onClick(View v) {
String num = numET.getText().toString();//獲取文字框內容(號碼)
//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//建立意圖物件
Intent intent = new Intent();//建立意圖物件
intent.setAction(Intent.ACTION_CALL);//設定意圖的動作為撥打電話
intent.setData(Uri.parse("tel:"+num));//設定意圖的資料(電話號碼)
startActivity(intent);//執行意圖
}
}
}
方式二:(常用)
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;
/**
* 方式二:當前類實現OnClickListener方法
* 在主函式中給按鈕新增監聽器setOnClickListener(this)
* 引數是當前類
*/
public class MainActivity2 extends Activity implements OnClickListener {//當前類既是一個Activity,也是一個OnClickListener實現類
private EditText numET;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numET = (EditText) findViewById(R.id.numET);
Button callBT = (Button) findViewById(R.id.callBT);//獲取按鈕物件
callBT.setOnClickListener(this);//把當前物件作為監聽器,新增到button上
}
public void onClick(View v) {
String num = numET.getText().toString();//獲取文字框內容(號碼)
//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//建立意圖物件
Intent intent = new Intent();//建立意圖物件
intent.setAction(Intent.ACTION_CALL);//設定意圖的動作為撥打電話
intent.setData(Uri.parse("tel:"+num));//設定意圖的資料(電話號碼)
startActivity(intent);//執行意圖
}
}
方式三:(常用)
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
/**
* 方式三:在layout資料夾下的main.xml中的Button元件中新增一個
* android:onClick="myOnClick"屬性
* 然後在此類中新增一個myOnClick方法即可
* 這樣就不需要手動寫程式碼往Button上新增監聽器了
*/
public class MainActivity3 extends Activity {
private EditText numET;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numET = (EditText) findViewById(R.id.numET);
}
public void myOnClick(View v) {
String num = numET.getText().toString();//獲取文字框內容(號碼)
//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//建立意圖物件
Intent intent = new Intent();//建立意圖物件
intent.setAction(Intent.ACTION_CALL);//設定意圖的動作為撥打電話
intent.setData(Uri.parse("tel:"+num));//設定意圖的資料(電話號碼)
startActivity(intent);//執行意圖
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/insert_num" />
<EditText
android:id="@+id/numET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/callBT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/call"
android:onClick="myOnClick"
/>
</LinearLayout>
相關文章
- javascript實現根據點選按鈕的不同進行不同的操作JavaScript
- iOS專案開發實戰——監聽對話方塊的按鈕點選事件iOS事件
- 移動端撥打電話和傳送簡訊按鈕
- javascript實現的點選不同提交按鈕實現提交到不同頁面JavaScript
- Android ListView中按鈕監聽器設定及優化AndroidView優化
- [實戰] Android 撥打電話Android
- QT中使用Event Filter監聽按鈕事件,Release後按鈕不見QTFilter事件
- jQuery實現的監聽回車按鍵程式碼例項jQuery
- 玩手機打電話識別監測系統
- Android Service 服務的應用之電話監聽器以及簡訊監聽器Android
- vue實現根據多選框按鈕,動態給百度地圖新增和刪除相應的覆蓋物Vue地圖
- cocos2d-x監聽android的選單和返回按鈕Android
- Androidx為Fragment中的按鈕設定監聽AndroidFragment
- mui點選訊息框的用法,及其點選呼叫按鈕撥打電話UI
- Android模似打電話程式實現 - Android移動開發技術文章Android移動開發
- css3實現的開關按鈕程式碼例項CSSS3
- unity 實現輪盤方式的按鈕滾動效果Unity
- Android Fragment實現按鈕間的切換AndroidFragment
- [程式碼結構設計]根據不同條件使用不同實現類的業務程式碼設計
- 新增按鈕事件事件
- odoo12 Tree檢視建立編輯旁邊新增按鈕,並根據條件隱藏Odoo
- css3實現button按鈕美化效果程式碼例項CSSS3
- jQuery入門(七)jQuery實現按鈕分頁jQuery
- Android 自定義實現switch開關按鈕Android
- 直播軟體開發,Android實現根據程式名殺死特定程式Android
- css3實現的美觀的提交按鈕效果CSSS3
- css3程式碼實現的滑鼠懸浮按鈕效果程式碼例項CSSS3
- Android中ImageButton自定義按鈕的按下效果的程式碼實現方法,附網上2種經典解決方法。Android
- hbuilder mui如何監聽搜尋框點選清除按鈕UI
- uniapp 實現打電話錄音功能APP
- Android桌面新增快捷方式的實現Android
- Android的事件處理——監聽介面方式Android事件
- Vue Router根據後臺資料載入不同的元件(思考->實現->不止於實現)Vue元件
- button按鈕重新整理頁面的幾種方式
- 3種 web 會話管理的方式Web會話
- css3實現的滑鼠懸浮按鈕動畫效果CSSS3動畫
- js動態往div裡新增按鈕的兩種方式以及jQuery中$.each的用法詳解JSjQuery
- 直播系統原始碼,vue二種方式根據條件判斷顯示不同樣式原始碼Vue