Button Click 5种响应方法

在设置Button按钮的点击事件onClick时,发现有多种方法使用,网上查看了一些博主写的帖子,发现不是非常完整,这里补充说明一下。

方法一:Button对象调用setOnClickListener,setOnClickListener中new OnClickListener接口作为参数传入,OnClickListener中重写onClick方法

    该方法适合单个或少量控件设置点击事件,使用比较灵活。
    示例代码:
public class ButtonClickActivity extends AppCompatActivity {

    private Button btn_click;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_click);
        btn_click = findViewById(R.id.btn_click);
        btn_click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //do something after click
                Toast.makeText(getApplicationContext(),"我被点击了",Toast.LENGTH_SHORT).show();
            }
        });

    }
}

方法二:自定义内部类实现OnClickListener接口,并重写onClick方法,通过setOnClickListener实现

    该方法同样适合单个或少量控件设置点击事件,自定义类也可以用于实现其他方法。
    示例代码:
public class ButtonClickActivity extends AppCompatActivity{

    private Button btn_click;

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

        btn_click = findViewById(R.id.btn_click);
        btn_click.setOnClickListener(new MyOnClickListener());
    }

    private class MyOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            //do something after click
        }
    }
}

方法三、自定义OnClickListener接口对象,并重写onClick方法,通过setOnClickListener实现

        该方法和方法三类似,适合于单个或少量控件设置点击事件。
  	    示例代码:
public class ButtonClickActivity extends AppCompatActivity {

      private Button btn_click;

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

        btn_click = findViewById(R.id.btn_click);
        btn_click.setOnClickListener(listener);
    }
    private View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //do something after click
        }
    };

}

方法四:类implement接口OnClickListener,类中重写的OnClickListener接口的onClick方法

	该方法适合多个控件都设置点击事件。
    示例代码:
public class ButtonClickActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_click;
    private Button btn_click2;
    private Button btn_click3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_click);
        
        btn_click = findViewById(R.id.btn_click);
        btn_click2 = findViewById(R.id.btn_click2);
        btn_click3 = findViewById(R.id.btn_click3);
        btn_click.setOnClickListener(this);
        btn_click2.setOnClickListener(this);
        btn_click3.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_click){
            //do something after click
        }else if(view.getId() == R.id.btn_click2){
            //do something after click
        }else if(view.getId() == R.id.btn_click3){
            //do something after click
        }
    }
}

五、在xml文件中对按钮添加 android:onClick=”xxx” 属性,在类中实现xxx方法

    该方法同样适合单个或少量控件设置点击事件,优点是代码简洁。
    示例代码:
	布局文件代码:
	<Button
	android:id="@+id/btn_click"
	android:layout_width="wrap_content"
 	android:layout_height="wrap_content"
	android:layout_marginTop="100dp"
	android:text="点击事件"
	android:layout_gravity="center"
	android:textColor="@color/black"
	android:textSize="22sp"
	android:onClick="onClickButton"/> //onClickButton onClick方法

java代码:

public class ButtonClickActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_click);
    }
    public void onClickButton(View view){
        //do something after click
    }
}

注意:实现的onClickButton()方法是public的,且需要参数view。

总结:
Button所在的Activity需要继承Activity(或继承Activity的子类,如代码中的AppCompatActivity),一般在onCreate方法中对Button对象进行监听。。
前四种方法是通过View的setOnClickListener方法实现,前三种适合较少按钮时使用,第四种适合多个按钮时使用,最后一种是通过xml文件设置按钮onClick属性,并实现onClick对应的方法来实现,也适合较少按钮时使用

参考文章:https://www.cnblogs.com/heixiang/p/10985842.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当你点击一个按钮时,会触发按钮的click事件。在JavaScript中,你可以通过给按钮添加一个onclick事件处理函数来响应按钮的点击事件。例如,你可以使用以下代码来响应按钮的点击事件并输出一些信息到控制台: document.getElementById("btn").onclick = function(e) { console.log('click'); console.log(e); } 这段代码会在按钮被点击时输出"click"和事件对象e到控制台。\[1\]在Java中,你可以通过给按钮添加一个OnClickListener来响应按钮的点击事件。例如,你可以使用以下代码来响应按钮的点击事件: Button bt_Demo = (Button)findViewById(R.id.bt_Demo); bt_Demo.setOnClickListener(new ButtonListener()); private class ButtonListener implements OnClickListener{ @Override public void onClick(View arg0) { //响应Clicked事件 //...... } } 这段代码会在按钮被点击时执行ButtonListener中的onClick方法,你可以在该方法中编写你想要执行的代码。\[2\]在HTML中,你可以通过给按钮添加一个onclick属性来响应按钮的点击事件。例如,你可以使用以下代码来响应按钮的点击事件并输出一些信息到控制台: <button id="btn">按钮</button> <script type="text/javascript"> document.getElementById("btn").onclick = function(e) { console.log('click'); console.log(e); } </script> 这段代码会在按钮被点击时输出"click"和事件对象e到控制台。\[3\] #### 引用[.reference_title] - *1* *3* [键盘回车和鼠标点击触发button按钮click事件的问题](https://blog.csdn.net/sinat_36521655/article/details/100545123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Button的四Click响应方法](https://blog.csdn.net/xcltapestry/article/details/14452807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值