Android Studio switch statement on ImageView
15,234
why don't use the id
of the View, which is already constant, instead of comparing the v itself?
switch (v.getId()) {
case R.id.level001:
level_selected = "level001";
break;
case R.id.level002:
level_selected = "level002";
break;
}
Author by
Charas
Updated on June 04, 2022Comments
-
Charas almost 2 years
I am trying to use a switch statement on ImageView and assign a String value, so that in my onClick function, I can do some function depending on which ImageView is clicked and use the String value depending on the ImageView clicked. Sorry for the bad explanation, below is the code sample.
ChooseLevelActivity.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 } }