电话拨号器
1、画UI

2、根据UI写业务逻辑,在MainActivity里面写 在onCreate方法里面写逻辑
// 加载一个布局
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
// [2]找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
3、给按钮设置一个点击事件
// [3]给按钮设置一个点击事件
btn_call.setOnClickListener(new MyClickListener());
4、设置按钮的点击事件
4.1 按钮的四种点击事件
- 自己定义一个类去实现方法需要的参数类型
// 定义一个类去实现按钮需要的接口类型
private class MyClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// [4]获取edittext文本内容
String number = et_number.getText().toString().trim();
if ("".equals(number)) {
// Context 上下文
Toast.makeText(MainActivity.this, "number不能为空", Toast.LENGTH_LONG).show();
return;
}
// [5]进行拨打电话 意图 Intent
Intent intent = new Intent();// 创建一个意图对象
// [5.1]设置动作
intent.setAction(Intent.ACTION_CALL);
// [5.2]设置要拨打的数据
// uri:统一资源标识符 自己定义的路径 想代表什么就代表什么
// url:统一资源定位符www.baidu.com
intent.setData(Uri.parse("tel:" + number));
// [6]开启意图
startActivity(intent);
}
}
- 设置按钮的第二种点击事件,采用匿名内部类的方式
// ☆按钮的第二种点击事件 匿名内部类的方式
btn_call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
callPhone();
}
});
- 设置按钮的第三种点击事件,让当前类去实现onClickListener接口
如果界面上的按钮数量比较多,采用这种方法非常好,我们只要在实现的方法里面去判断一下按钮的ID就好了。
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载一个布局
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
// [2]找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
Button btn_call1 = (Button) findViewById(R.id.button2);
Button btn_call2 = (Button) findViewById(R.id.button3);
Button btn_call3 = (Button) findViewById(R.id.button4);
// [3]给按钮设置一个点击事件
// btn_call.setOnClickListener(new MyClickListener());
// ☆按钮的第三种点击事件 主类实现onClickListener的方式
btn_call.setOnClickListener(this);
btn_call1.setOnClickListener(this);
btn_call2.setOnClickListener(this);
btn_call3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
callPhone();
break;
case R.id.button2:
callPhone();
break;
case R.id.button3:
callPhone();
break;
case R.id.button4:
System.out.println("你点击了我");
break;
default:
break;
}
}
- 在布局文件里面增加onClick属性,同时添加属性对应的方法click
android:text="test"
android:onClick="click"
// [5]按钮的第四种点击事件,申明一个方法,方法名和你要点击的这个按钮在布局中申明的属性一样
public void click(View v) {
// 拨打电话
callPhone();
}
5、一定要记得加上拨打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
网友评论