我试图在 ImageView 上使用 switch 语句并分配一个 String 值,以便在 onClick 函数中,我可以根据单击的 ImageView 执行一些功能,并根据单击的 ImageView 使用 String 值。抱歉,解释不好,下面是代码示例。
选择LevelActivity.java
public class ChooseLevelActivity extends Activity implements View.OnClickListener {
ImageView level001, level002, level003, level004, level005;
String level_selected;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.choose_level);
level001 = (ImageView) findViewById(R.id.level001);
level002 = (ImageView) findViewById(R.id.level002);
level003 = (ImageView) findViewById(R.id.level003);
level004 = (ImageView) findViewById(R.id.level004);
level005 = (ImageView) findViewById(R.id.level005);
// Array of ImageView
final ImageView[] levelsArray = {level001, level002, level003, level004, level005};
for(int i = 0; i < 5; i++) {
levelsArray[i].setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
/* Switch statement to change the value of String level_selected
* depending on which ImageView is clicked.
* but an error "Constant expression required" shows up
* What am I missing? How to use the switch on ImageView ?
*/
switch (v) {
case level001:
level_selected = "level001";
break;
case level002:
level_selected = "level002";
break;
}
// Some function that uses the String level_selected
}
}
最佳答案
为什么不使用 View 的 id
(它已经是常量),而不是比较 v 本身?
switch (v.getId()) {
case R.id.level001:
level_selected = "level001";
break;
case R.id.level002:
level_selected = "level002";
break;
}
关于java - Android Studio ImageView 上的 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019565/