java获得按钮的值_如何获得按下按钮的值? (How to get the value of pressed button?)

2011-04-13 22:12:12

2

I am searching the solution, how to get the value of the button which is pressed.

When I try something like this:

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button numb1 = ((Button)this.findViewById(R.id.numb1));

numb1.setOnClickListener(this);

}

public void onClickHandler(View v){

String pressed = null;

switch (v.getId()) {

case R.id.numb1:

pressed=numb1.getText().toString();

break;

//OR

case R.id.numb1:

pressed=R.id.numb1.getText().toString();

break;

}

new AlertDialog.Builder(this).setTitle("Info").setMessage(pressed).setNeutralButton("Okey", null).show();

}

Both cases in switch are unfortunately bad.

And I still can't get the value of the pressed button... Can you help me please with this problem yet?

Thank you.

在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、付费专栏及课程。

余额充值