方式一【定义内部类】:
根据ui写业务逻辑 在mainActivity->onCreate方法里面写逻辑
1 | btn_call.setOnClickListener( new MyClickListener()); |
给按钮设置一个点击事件
1 2 3 | //加载一个布局setContentView(R.layout.activity_main); //[1]找到我们关心的空间edittext button et_number = (EditText) findViewById(R.id.editText1); //[2]找到按钮 Button btn_call = (Button) findViewById(R.id.button1); |
自己定义一个类去实现方法需要的参数类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | private class MyClickListener implements OnClickListener{ //当按钮被点击的时候调用 @Override public void onClick(View v){ //[4]获取edittext文本内容 String number = et_number.get_Text().toString().trim(); if ( "" .equals(number)){ /** * context 上下文 */ Toast.makeText(MainActivity. this , "number不能为空" , 1 ).show(); return ; } //[5]进行电话拨打 意图Intent Intent intent = new Intent(); //创建一个意图对象 //[5.1]设置动作 intent.setAction(Intent.ACTION_CALL); //[5.2]设置要拨打的数据 /** * uri:统一资源提示符 */ intent.setData(Uri.parse( "tel:" +number)); //[6]开启意图 startActivity(intent); } } |
一定要记得加上拨打电话的权限
方式二【定义匿名内部类】:
//按钮的第二种点击事件
1 2 3 4 5 6 7 8 9 10 | //第一种的方法是这样的 btn_call.setOnClickListener(new MyClickListener()); btn_call.setOnClickListener( new MyClickListener(){ @Override public void onClick(View v){ //[4]实现拨打电话的逻辑 //把之前内部类里面拨打电话的逻辑拿出来写成一个function(callPhone)然后直接调用就可以了 callPhone(); } }); |
方式三(当页面上按钮非常多的情况下适用):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //在onCreate找到按钮空间定义多个 Button btn_call1 = (Button) findViewById(R.id.button1); Button btn_call2 = (Button) findViewById(R.id.button2); Button btn_call3 = (Button) findViewById(R.id.button3); btn_call.setOnClickListener( this ); //this是MainActivity 这个参数的类型必须是onClickListener //所以在当前类上实现onclick接口类型 //public class MainActivity extends Activity implements onClickListener //注意引用的是View包下的onClickListene //实现这个接口要实现这个接口内未实现的方法onClick //当点击按钮的时候执行 @Override public void onClick(View v){ //具体判断点击的是哪个按钮 switch (v.getId()){ case R.id.button1: //代表点击了第1个按钮 break ; case R.id.button2: //代表点击了第2个按钮 break ; case R.id.button3: //代表点击了第3个按钮 break ; default : break ; } } |
方式四:(声明一个方法 方法名和你要点击的这个按钮在布局中声明的onClick一样)
在activity_main.xml里给Button添加onClick属性