Button按钮响应事件的2种实现方式

方法一:
在onCreate中添加如下代码
Button button_OK = (Button)findViewById(R.id.button_OK);
Button button_Exit = (Button)findViewById(R.id.button_Exit);

button_OK.setOnClickListener(this);
button_Exit.setOnClickListener(this);

另外有一个onClick函数如下:
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.button_OK: setTitle("this is OK button"); break;
case R.id.button_Exit: this.finish(); break;
}
}

这里的arg0作为响应参数,选择触发了哪个控件。当然,该程序需要在main.xml中加入两个按钮的说明:
<Button android:id="@+id/button_OK"

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"/>

<Button android:id="@+id/button_Exit"

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Exit"/>

还需要库: import android.view.View.OnClickListener;


方法二:
在onCreate中添加如下代码

Button button_OK = (Button)findViewById(R.id.button_OK);
Button button_Exit = (Button)findViewById(R.id.button_Exit);
button_OK.setOnClickListener(listener);
button_Exit.setOnClickListener(listener1);

然后添加两个 OnClickListener:
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
setTitle("this is OK button");
}
};
OnClickListener listener1 = new OnClickListener() {
public void onClick(View v) {
finish();
}

注:两个方法实现效果相同!在两种方法中,都是需要main.xml支持的,并且使用语句:setContentView(R.layout.main)。

Android开发中,Button按钮的点击事件可以通过以下几方式实现: 1. 使用匿名内部类实现OnClickListener接口: 这方式是为按钮设置一个点击监听器,通过实现OnClickListener接口,并重写onClick()方法来定义点击事件响应操作。 ```java Button button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在这里编写点击按钮后的操作 } }); ``` 2. 在XML布局文件中直接设置android:onClick属性: 可以在Button的XML布局定义中使用android:onClick属性指定一个处理点击事件的方法名,然后在Activity中定义这个方法,并在方法中处理点击事件。 ```xml <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" android:onClick="onButtonClicked"/> ``` ```java public void onButtonClicked(View view) { // 在这里编写点击按钮后的操作 } ``` 3. 使用Lambda表达式: 在支持Lambda表达式的Android版本中,可以使用Lambda表达式简化事件监听器的代码。 ```java Button button = findViewById(R.id.button); button.setOnClickListener(view -> { // 在这里编写点击按钮后的操作 }); ``` 4. 使用Kotlin的SAM转换: 在Kotlin中,可以利用单抽象方法(SAM)转换,将Lambda表达式直接传递给需要SAM的构造函数,以简化代码。 ```kotlin val button: Button = findViewById(R.id.button) button.setOnClickListener { // 在这里编写点击按钮后的操作 } ``` 5. 在Activity中重写onTouchEvent方法: 虽然这方法较为复杂且不常用,但理论上可以通过重写Activity的onTouchEvent方法来处理按钮的点击事件。 ```java @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { Button button = findViewById(R.id.button); if (button.isPressed()) { // 在这里编写点击按钮后的操作 } } return super.onTouchEvent(event); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值