Switch中的重复案例

时间:2011-06-15 10:35:37

标签: android

 protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        switch(requestCode)
        {
        case BOOK_SELECT: 
            if (resultCode == RESULT_OK)
            {
                String name = data.getStringExtra("SelectedBook");
                Toast.makeText(this, "You have chosen the book: " + " " + name, Toast.LENGTH_LONG).show();
                break;
            }
        case PEN_SELECT:
            if (resultCode == RESULT_OK)
            {
                String name = data.getStringExtra("SelectedPen");
                Toast.makeText(this, "You have chosen the pen: " + " " + name, Toast.LENGTH_LONG).show();
                break;
            }
        }

    }  

这两种情况都不同我无法理解为什么它显示

3 个答案:

答案 0 :(得分:7)

从你的标题(我假设是错误)检查你的int变量被声明:

   int BOOK_SELECT = 0;
   int PEN_SELECT = 1; // If this was 0 you would get "duplicate case" error 

您需要确保它们是唯一的

答案 1 :(得分:1)

您的break;声明是否意味着离职?如果是,请使用return;

break;上下文中的

case旨在阻止它落入下一个case区块。

答案 2 :(得分:0)

中断在封闭的if语句中。