You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中判断三个按钮哪个被点击的完整解决方案

实现MainActivity中三个按钮的点击判断完整方案

针对你的需求,这里提供两种成熟的实现方式,都能完美判断哪个按钮被点击并执行对应逻辑(比如跳转到指定Activity):


方法一:匿名内部类绑定点击事件

这种方式逻辑直观,每个按钮的处理逻辑独立,适合按钮数量不多的场景:

package com.example.mrj.ewacalculator;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private Button button1;
    private Button button2;
    private Button button3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // 必须关联对应的布局文件

        // 初始化三个按钮(注意:布局文件中按钮的id要和这里的R.id.xxx完全匹配)
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);

        // Button1点击逻辑:跳转到Main2Activity
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                startActivity(intent);
            }
        });

        // Button2点击逻辑:跳转到Main3Activity
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Main3Activity.class);
                startActivity(intent);
            }
        });

        // Button3点击逻辑:自定义你的业务操作
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 示例:可以添加弹窗、计算逻辑或跳转到其他页面
                // Intent intent = new Intent(MainActivity.this, XXXActivity.class);
                // startActivity(intent);
            }
        });
    }
}

方法二:实现View.OnClickListener接口(更易维护)

如果后续按钮数量增加,这种方式能统一管理所有点击事件,代码更简洁:

package com.example.mrj.ewacalculator;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button button1;
    private Button button2;
    private Button button3;

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

        // 初始化按钮
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);

        // 给所有按钮绑定同一个点击监听器
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
    }

    // 统一处理所有按钮的点击事件
    @Override
    public void onClick(View v) {
        // 通过View的ID判断被点击的按钮
        switch (v.getId()) {
            case R.id.button1:
                Intent intent1 = new Intent(this, Main2Activity.class);
                startActivity(intent1);
                break;
            case R.id.button2:
                Intent intent2 = new Intent(this, Main3Activity.class);
                startActivity(intent2);
                break;
            case R.id.button3:
                // 这里写Button3对应的自定义逻辑
                break;
            default:
                break;
        }
    }
}

关键注意事项

  • 确保布局文件activity_main.xml中按钮的android:id属性和代码里的R.id.button1/button2/button3完全一致
  • 必须在AndroidManifest.xml中注册Main2Activity和Main3Activity,否则跳转时会报错:
    <activity android:name=".Main2Activity"/>
    <activity android:name=".Main3Activity"/>
    

内容的提问来源于stack exchange,提问作者Mohammed Alsayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:03:20