1.匿名内部类 

 //匿名内部类适用于只有唯一操作的按钮
        Button btn2 = findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //在控制台输出
                Log.e("TAG", "========匿名内部类==========");
            }
        });

2. 内部类监听器设置 

//1.获取按钮
Button btn1 = findViewById(R.id.btn1);
//点击事件: 被点击时的被触发的事件
MyClickListener mcl = new MyClickListener();
btn1.setOnClickListener(mcl); //2.为按钮注册点击事件监听器 

 class MyClickListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
            //在界面上输出一个语句
            Log.e("TAG", "刚刚点击的按钮是注册了内部类监听器的按钮");
        }
    }

3.用本类实现activity 这里需要implement View.onClickListener方法

public class ButtonActivity extends AppCompatActivity implements View.OnClickListener{ 

    Button btn3 = findViewById(R.id.btn3);
    btn3.setOnClickListener(this);
    
   @Override
    public void onClick(View v) {
        Log.e("TAG", "用本类实现了Activity按钮");
    }


}

4. 使用xml实现监听事件 这里调用了同一种方法 因此在定义类的时候,使用android:id进行区分 

xml文件

<Button
        android:id="@+id/btn4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="在xml文件中绑定"
        android:onClick="myClick"/>


<Button android:id="@+id/btn5" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="在xml文件中绑定2" android:onClick="myClick"/>

java文件

 //参数: 被点击的控件参数
    public void myClick(View v) {
        switch (v.getId()) {
            case R.id.btn4:
                Log.e("TAG", "btn4========");
                break;
            case R.id.btn5:
                Log.e("TAG", "btn5========");
                break;
        }

    }

 

posted on 2021-03-11 23:47  python我的最爱  阅读(409)  评论(0编辑  收藏  举报