Button控件主要点击事件的方式三种(自我学习理解)

一, XML 绑定 onClick 属性(声明式)

适用场景:简单快速绑定,适合少量按钮或新手体验。

需要在button控件中指定onClick属性,这样可以在___Activity中定义来实现button控件的点击事件。

button控件内添加                

关键代码:

 <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:onClick="onClick"
        android:text="方式一" />

activity内添加

关键代码:

  public void onClick(View view) {

      button.setText("您方式1点击按钮");
  }

二,匿名内部类实现 OnClickListener

优点:直观灵活,无需考虑方法签名问题,适合临时绑定。

通过Button控件设置setOnClickListener()方法实现对Button控件点击事件的监听。SetOnClickListener()方法中传递的参数是一个匿名内部类。如果监听到按钮被点击,那么就会调用匿名内部类中的onClick方法实现对Button控件的点击事件。(大白话我的理解是,要定义类似于一个函数,然后调用函数的方法,但这样按钮的灵活性更加方便。)

Layout内随便定义一个Button:
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="方式二" />

activity内添加

关键代码:

public class MainActivity extends AppCompatActivity{

    private Button button,button2,button3,button4;?*说明按钮*/
    private View view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linearlayout);
        button2=findViewById(R.id.button2); // 绑定按钮的点击事件

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                button2.setText("您选择了方式2点击按钮");
            }
        })
  
    }

}

三, Activity/Fragment 实现 View.OnClickListener 接口

适用场景:需要统一管理多个按钮的点击事件,集中处理逻辑更清晰。

Layout内随便定义一个Button:

  <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"

        android:text="方式三" />

 activity内添加

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button button,button2,button3,button4;
    private View view;

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

        button3.setOnClickListener(this);
      
    }


   @Override
    public void onClick(View view) {

        button3.setText("您方式三点击按钮");
    }


}

这里有一个注意点,就是假设使用了方式一,那么使用方式三的时候,这里会产生冲突,那么方式一的点击事件会被方式三抢占(我也不理解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值