Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ImageView上的Android Studio开关语句_Java_Android_Android Studio_Imageview - Fatal编程技术网

Java ImageView上的Android Studio开关语句

Java ImageView上的Android Studio开关语句,java,android,android-studio,imageview,Java,Android,Android Studio,Imageview,我试图在ImageView上使用switch语句并分配一个字符串值,以便在onClick函数中,我可以根据单击的ImageView执行一些函数,并根据单击的ImageView使用字符串值。很抱歉解释得不好,下面是代码示例 ChooseLevelActivity.java public class ChooseLevelActivity extends Activity implements View.OnClickListener { ImageView level001, level

我试图在ImageView上使用switch语句并分配一个字符串值,以便在onClick函数中,我可以根据单击的ImageView执行一些函数,并根据单击的ImageView使用字符串值。很抱歉解释得不好,下面是代码示例

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

    }
}
公共类ChooseLevel活动扩展活动实现View.OnClickListener{
图像视图标高001、标高002、标高003、标高004、标高005;
选择字符串级别;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局。选择_级别);
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);
//ImageView数组
最终图像视图[]levelsArray={level001、level002、level003、level004、level005};
对于(int i=0;i<5;i++){
levelsArray[i].setOnClickListener(此);
}
}
@凌驾
公共void onClick(视图v){
/*Switch语句更改所选字符串级别_的值
*取决于单击的图像视图。
*但是出现了一个错误“需要常量表达式”
*我缺少什么?如何使用ImageView上的开关?
*/
开关(v){
案例级别001:
所选级别=“level001”;
打破
案例级别002:
所选级别=“level002”;
打破
}
//使用所选字符串级别的函数
}
}

为什么不使用视图的
id
,而不是比较v本身呢

switch (v.getId()) {
    case R.id.level001:
        level_selected = "level001";
         break;
    case R.id.level002:
         level_selected = "level002";
         break;
}