鱼C论坛

 找回密码
 立即注册
查看: 961|回复: 3

[已解决]android studio java写switch case求助

[复制链接]
发表于 2023-9-7 20:18:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不知道为什么我照抄 多 button 设置监听的switch 会报错
case 后面不可以写R.id.button1 , 前面明明已经 写了 findViewbyid

请解释原因为什么这么写会报错,给出更改的方法

这是自己写的
Screenshot 2023-09-07 200949.png Screenshot 2023-09-07 200924.png
最佳答案
2023-9-7 20:18:53
在Java中,switch语句的case后面只能跟常量表达式,而不能是变量。因此,你不能直接将R.id.button1作为switch语句的case。

解决这个问题的方法是,你可以在switch语句之前使用一个if语句来判断点击的是哪个按钮,然后再执行相应的逻辑。以下是修改后的代码示例:
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);
Button button3 = findViewById(R.id.button3);

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button1被点击后的逻辑
        // 比如显示一个Toast消息
        Toast.makeText(MainActivity.this, "Button 1被点击了", Toast.LENGTH_SHORT).show();
    }
});

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button2被点击后的逻辑
        // 比如启动一个新的Activity
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        startActivity(intent);
    }
});

button3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button3被点击后的逻辑
        // 比如发送一个网络请求
        // ...
    }
});

通过使用多个独立的OnClickListener来监听每个按钮的点击事件,你可以根据点击的按钮执行不同的逻辑。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-7 20:18:53 | 显示全部楼层    本楼为最佳答案   
在Java中,switch语句的case后面只能跟常量表达式,而不能是变量。因此,你不能直接将R.id.button1作为switch语句的case。

解决这个问题的方法是,你可以在switch语句之前使用一个if语句来判断点击的是哪个按钮,然后再执行相应的逻辑。以下是修改后的代码示例:
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);
Button button3 = findViewById(R.id.button3);

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button1被点击后的逻辑
        // 比如显示一个Toast消息
        Toast.makeText(MainActivity.this, "Button 1被点击了", Toast.LENGTH_SHORT).show();
    }
});

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button2被点击后的逻辑
        // 比如启动一个新的Activity
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        startActivity(intent);
    }
});

button3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 在这里执行button3被点击后的逻辑
        // 比如发送一个网络请求
        // ...
    }
});

通过使用多个独立的OnClickListener来监听每个按钮的点击事件,你可以根据点击的按钮执行不同的逻辑。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-7 20:19:12 | 显示全部楼层
https://blog.csdn.net/kim5659/ar ... ult-0-126327208.142^v93^chatsearchT3_1&spm=1018.2226.3001.4187
这是抄的那个教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-7 21:05:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-21 22:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表