java - Android Studio ImageView 上的 switch 语句

标签 java android android-studio imageview

我试图在 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/

相关文章:

java - gradle proj同步失败,尝试了每种方法

java - 二维数组串联

java - 从 jDateChooser 获取值并保存到 MS sql DB

android - 选择多个联系人的示例项目

java - 如何从联系人中获取手机号码

android - Gradle:如何定义多种口味的共同依赖?

Java - 如何在异常时继续运行

java - 简单测试中的 NoClassDefFoundError

android - 拖放组件在 android studio 的预览中不可见

Android 设备无法连接到 ADB