2012-02-02 79 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;行,否則所有匹配案例後面的代碼(包括其他案例)都將被執行。