繁体   English   中英

ImageView上的Android Studio切换语句

[英]Android Studio switch statement on ImageView

我试图在ImageView上使用switch语句并分配一个String值,以便在我的onClick函数中,可以根据单击的ImageView做一些函数,并根据单击的ImageView使用String值。 对不起,不好的解释,下面是代码示例。

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

    }
}

为什么不使用已经固定的View的id ,而不是比较v本身?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM