Android实现事件监听常用的四种方法

在Android开发中,事件监听是必不可少的,经常用到,今天就来介绍一下几种事件监听的方法

事件监听
内部类方法
外部类方法
匿名内部类
本类监听方法

内部类方法

在Activity中创建一个类实现View.OnClickListener类的onClick方法

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        Button button1 = findViewById(R.id.button1);
        //创建事件监听对象
        MyOnClickListener myOnClickListener = new MyOnClickListener();
        //给控件设置事件监听
        button.setOnClickListener(myOnClickListener);
        button1.setOnClickListener(myOnClickListener);
    }

    class MyOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            //事件操作
            switch (v.getId()){
                case R.id.button:
                    ···
                    break;
                case R.id.button1:
                    ···
                    break;
                ······
            }
        }
    }
}

外部类方法

在Activity外新建一个类实现View.OnClickListener类的onClick方法
在这里插入图片描述
MyOnClickListener类

public class MyOnClickListener implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        //事件操作
        switch (v.getId()){
            case R.id.button:
                ···
                break;
            case R.id.button1:
                ···
                break;
            ······
        }
    }
}

Activity类

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        Button button1 = findViewById(R.id.button1);
        //创建事件监听对象
        MyOnClickListener myOnClickListener = new MyOnClickListener();
        //给控件设置事件监听
        button.setOnClickListener(myOnClickListener);
        button1.setOnClickListener(myOnClickListener);
    }
}

匿名内部类方法

在设置事件监听的同时设置内部类

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        Button button1 = findViewById(R.id.button1);
        //给控件设置事件监听
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ···
            }
        });
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ···
            }
        });
    }
}

本类监听方法

在Activity本类中实现View.OnClickListener类的onClick方法

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        Button button1 = findViewById(R.id.button1);
        //给控件设置事件监听
        button.setOnClickListener(this);
        button1.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        //事件操作
        switch (v.getId()){
            case R.id.button:
                ···
                break;
            case R.id.button1:
                ···
                break;
            ······
        }
    }
}

以上就是Android中实现事件监听的常用方法


  • 本次文章分享就到这,有什么疑问或有更好的建议可在评论区留言,也可以私信我
  • 感谢阅读~

  • 0
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenYuan开袁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值