1. 程式人生 > >列表中的一鍵撥號

列表中的一鍵撥號

與前面發表的那篇文章類似,也是列表中按鈕的實現(列表中的按鈕實現可參考點選開啟連結),只是按下列表中的按鈕可實現一鍵撥號。

電話撥號可用Intent來實現,如果是在普通的按鈕實現一鍵撥號的話很容易實現,程式碼如下

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類,在非Activity類中實現一鍵撥號與以上介紹的方法稍有不同

首先要在當前執行的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; }
參考點選開啟連結