切换案例陈述有问题

时间:2012-02-02 17:53:39

标签: java android

我要做的是从网站上获取2个播放列表。但是当我得到列表时,它会填充第一个包含好项目的列表。而在第二个它放在第一,并增加第二....我不知道为什么。 所以我明白了:

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

并且我试图放入2个播放列表(不同时)。所以我称它为2次。网站上的查询返回wright列表。 它与PLchoice一起,在第一和第二种情况下......这就是为什么我得到第二个列表,第一个是第二个+第一个...为什么?

 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);
}

2 个答案:

答案 0 :(得分:1)

您需要在每个案例陈述中break(括号也是不必要的)。

Java Switch Documentation

答案 1 :(得分:0)

这就是所谓的切换 - 通过。你需要在每个案例的正文结尾之后有一个break;行,否则匹配案例之后的所有代码(包括其他案例)都将被执行。