与前面发表的那篇文章类似,也是列表中按钮的实现(列表中的按钮实现可参考点击打开链接),只是按下列表中的按钮可实现一键拨号。
电话拨号可用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;
}
参考
点击打开链接