android studio java写switch case求助
不知道为什么我照抄 多 button 设置监听的switch 会报错case 后面不可以写R.id.button1 , 前面明明已经 写了 findViewbyid
请解释原因为什么这么写会报错,给出更改的方法
这是自己写的
在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来监听每个按钮的点击事件,你可以根据点击的按钮执行不同的逻辑。 https://blog.csdn.net/kim5659/article/details/126327208?ops_request_misc=&request_id=&biz_id=102&utm_term=android%20studio%E6%8C%89%E9%92%AE%E5%A4%9A%E4%B8%AA%E7%82%B9%E5%87%BB&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-126327208.142^v93^chatsearchT3_1&spm=1018.2226.3001.4187
这是抄的那个教程 isdkz 发表于 2023-9-7 20:18
在Java中,switch语句的case后面只能跟常量表达式,而不能是变量。因此,你不能直接将R.id.button1作为swit ...
https://s1.ax1x.com/2023/09/07/pPy6Sr8.png
这样写可以吗,应用会闪退{:5_99:}
页:
[1]