2012-02-02 60 views
0

我想要做的是从网站获取2个播放列表。但是当我得到名单时,它会填充好物品的第一个列表。并在第二它放第一,并添加第二....我不知道为什么。切换案例陈述的问题

conn = (HttpURLConnection) url.openConnection(); 
BufferedReader rd = new BufferedReader(
       new InputStreamReader(conn.getInputStream())); 
parseMusic(rd,choice); 
conn.disconnect(); 

和票数我试图把在2播放列表(不能同时): 所以我得到它。所以我把它叫做2次。查询在网站上返回赖特列表。 它与PLchoice和第一和第二个案例.. thaths为什么我得到第二名单赖特,第一个是第二+第一个......为什么?

private void parseMusic(BufferedReader reader,int PLchoice) throws IOException { 
    String line=null; 
    while((line = reader.readLine()) != null) { 
     String[] values = line.split(","); 

     switch (PLchoice){ 
     case 1: { 
      if(musicList != null) { 
       if(values[0].equals("null")) { 
        Log.e("ERROR", "no music found!"); 
       } else { 
        int id = Integer.parseInt(values[0]); 
        String filename = values[1]; 

        musicList.add(new Mp3(id, filename)); 
       } 
      } else { 
       Log.e("ERROR", "MusicList = null"); 
      } 
     } 
     case 3:{ 
      if(secondList != null) { 
       if(values[0].equals("null")) { 
        Log.e("ERROR", "no music found!"); 
       } else { 
        int id = Integer.parseInt(values[0]); 
        String filename = values[1]; 

       secondList.add(new Mp3(id, filename)); 
       } 
      } else { 
       Log.e("ERROR", "MusicList = null"); 
       } 
      } 
     }   
    } 
    reader.close(); 
      Log.e("playList","MP3 file muslist= "+musicList); 
    Log.e("playList added","MP3 file secondList= "+secondList); 
} 

回答

1

您需要在每个case语句中使用break(括号也是不必要的)。

Java Switch Documentation

+0

shoet ...我看见..我的stu!! – Hia 2012-02-02 18:16:49

0

这就是所谓的开关,下通。您需要在每个案例的主体结束后有一个break;行,否则所有匹配案例后面的代码(包括其他案例)都将被执行。