Button控件检测点击事件的四种方式

本文介绍了在Android开发中,Button控件检测点击事件的四种常见方法,包括外部监听类、内部监听类、匿名内部类以及利用Activity类实现监听接口。这四种方式详细解析了如何响应和处理Button的点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Button检测点击共有四种方法(常用第三种)

1:外部监听类

MainActivity.java
Button btnSecond=(Button)findViewById(R.id.btnSecond);
btnSecond.setOnClickListener(new ExternalListenerClass(this));


ExternalListenerClass.java
public class ExternalListenerClass implements View.OnClickListener {

    private Context context;

    public ExternalListenerClass(Context context)  //获取context参数
    {
        this.context=context;
    }
    @Override
    public void onClick(View v) {
        System.out.println("另建外部监听类实现监听!");
        Toast.makeText(context, "另建外部监听类实现监听!", Toast.LENGTH_SHORT).show();
    }
}

2.内部监听类

Button btnThird=(Button)findViewById(R.id.btnThird);
btnThird.setOnClickListener(new InnerListenerClass());


public class InnerListenerClass implements View.OnClickListener{
    @Override
    public void onClick(View v) {
        System.out.println("测试内部定义监听器类的Button监听器!");
        Toast.makeText(MainActivity.this, "测试内部定义监听器类的Button监听器!", Toast.LENGTH_SHORT).show();
    }
}

3.匿名内部类

Button btnForth=(Button)findViewById(R.id.btnForth);
btnForth.setOnClickListener(anonymousListener);


//匿名内部类方式建立的监听器
Button.OnClickListener anonymousListener=new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println("匿名内部类方式定义的的Button监听器!");
        Toast.makeText(MainActivity.this, "匿名内部类方式定义的的Button监听器!", Toast.LENGTH_SHORT).show();
    }
};

4.利用Activity类实现监听接口

public class MainActivity extends Activity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layoutbutton);


        //设立由Activity实现OnClickListener接口的共同的监听器,多次设置会覆盖以前的值
        btnFirst.setOnClickListener(this);
        btnSecond.setOnClickListener(this);
        btnThird.setOnClickListener(this);
        btnForth.setOnClickListener(this);
    }


    //利用Activity类实现监听接口
    @Override
    public void onClick(View v) {
        switch (v.getId()) {//区分哪个按钮的事件
            case R.id.btnFirst:
                System.out.println("First Button");
                Toast.makeText(MainActivity.this, "First Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnSecond:
                System.out.println("Second Button");
                Toast.makeText(MainActivity.this, "Second Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnThird:
                System.out.println("Third Button");
                Toast.makeText(MainActivity.this, "Third Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btnForth:
                System.out.println("Forth Button");
                Toast.makeText(MainActivity.this, "Forth Button", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值