方式一:在Activity中实现View.OnClickListener
接口,重写onClick
方法,是实际开发中最常用的方式,在页面有多个按钮的情况下比较实用。
public class MainActivity extends Activity implements View.OnClickListener {
private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn1:
onClickbtn1(view);
break;
case R.id.btn2:
onClickbtn2(view);
break;
default:
break;
}
}
private void onClickbtn1(View view) {
//逻辑代码
}
private void onClickbtn22(View view) {
//逻辑代码
}
}
将逻辑代码单独写成方法,可以避免一个方法代码过长,可读性低。
方法二:使用匿名内部类实现,页面只有一个按钮时适用。
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("zyfirst.cn","btn1被点击");
}
});
方法三:在布局文件中使用OnClick属性直接注册处理方法,这种方式不利于维护,不好找到按钮对应的点击事件,不推荐使用。
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="btn2"
>
</Button>
public void btn2(View view){
Log.d("zyfirst.cn","btn2被点击");
}
Comments | NOTHING