Android开发中我们经常会涉及到点击事件的绑定,我总结了4种方法给大家分享出来,供大家参考。
下面以电话拨号器为例进行讲解吧,首先我们在layout布局文件中进行布局,设置一个EditText和Button,然后在Mainactivity分别对其进行声明,通过findViewbyId进行查找相应控件,读取到EditText中的信息,点击按钮进行拨号。下面是相关代码
public class MainActivity extends Activity implements OnClickListener {
private Button bt_dail;
private EditText et_number;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_dail = (Button) findViewById(R.id.bt_dial);
et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
//1.创建一个内部类定义点击事件
//bt_dail.setOnClickListener(new MyListener());
//2.采用匿名内部类创建点击事件
/* bt_dail.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
callPhone();
}
});*/
//3.让Activity实现点击事件
// bt_dail.setOnClickListener(this);
//
}
//4.在布局文件里面绑定一个点击的方法
public void dailButtonClicked(View view){
callPhone();
}
private void callPhone() {
String number = et_number.getText().toString().trim();
if(TextUtils.isEmpty(number)){
Toast.makeText(MainActivity.this, "号码不能为空", Toast.LENGTH_SHORT).show();
}
//意图
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
//url统一资源定位符 uri统一资源标示符
intent.setData(Uri.parse("tel:"+number));
//开启一个新的界面
startActivity(intent);
}
public class MyListener implements OnClickListener{
//当按钮被点击的时候
@Override
public void onClick(View v) {
callPhone();
}}
//3.接口里面实现未实现方法
public void onClick(View v) {
switch (v.getId()){
case R.id.bt_dial:
callPhone();
break;
default:
break;
}
}
}
值得说明的是第三种方法可以通过switch方法通过查找Id进行方法实现,避免了创建多个内部类的麻烦。第四种方法是在布局文件中Button中添加OnClick方法,不是很常用,简单的测试可以使用的