方式一:在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被点击");
    }

以梦为马 以汗为泉 不忘初心 不负韶华