列表中的一鍵撥號
阿新 • • 發佈:2019-02-15
與前面發表的那篇文章類似,也是列表中按鈕的實現(列表中的按鈕實現可參考點選開啟連結),只是按下列表中的按鈕可實現一鍵撥號。
電話撥號可用Intent來實現,如果是在普通的按鈕實現一鍵撥號的話很容易實現,程式碼如下
之前介紹了列表中的按鈕實現是放在介面卡的類中,也就是非Activity類,在非Activity類中實現一鍵撥號與以上介紹的方法稍有不同public class TelActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 電話號碼輸入框 final EditText TelEdit = (EditText)findViewById(R.id.tel_edit); // 撥打電話按鈕 Button tel = (Button) findViewById(R.id.tel); // 使用Intent撥打電話 /*****************************************************************************************************/ /* 使用Intent撥打電話 */ tel.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 用於存放電話號碼 String TelNum; // 獲取螢幕輸入的電話號碼 TelNum = TelEdit.getText().toString(); // 第一個引數為Intent的撥打電話行為,第二個引數為電話號碼解析為Uri格式 Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+TelNum)); startActivity(intent); } }); /* <end>使用Intent撥打電話 */ /*****************************************************************************************************/ } }
首先要在當前執行的Activity中申明一個靜態物件public static MainActivity MyActivity;而後需在onCreate方法中給MyActivity 賦值,即MyActivity = this;
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = super.getView(position, convertView, parent);
Button btn = (Button)v.findViewById(R.id.call_btn);
btn.setTag(position);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
// 第一個引數為Intent的撥打電話行為,第二個引數為電話號碼解析為Uri格式
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:13526365984"));
// 在MainActivity 中啟動Intent,MyActivity就是在當前執行的Activity中申明的靜態物件
MainActivity.MyActivity.startActivity(intent);
}
});
return v;
}
參考點選開啟連結