2017-08-12 57 views
0

我嘗試在完成循環後添加列表中的所有對象。 這是我想添加的適配器中的方法。Android將所有對象添加到循環後列表中

public MusicCustomAdapter(Context context) { 
      songList = new ArrayList<>(); 
      this.context = context; 
} 

public void addMoreItem(List<SongRespones.Songs> songList) { 
       this.songList = songList; 
       notifyDataSetChanged(); 
} 

這是用我的callResponse改造:

private void getAllSongBySinger() { 
      songService = ServiceGenerator.createService(SongService.class); 
      Call<SongRespones> callAllSong = songService.findAllSongBySinger(); 
      callAllSong.enqueue(new Callback<SongRespones>() { 
       @Override 
       public void onResponse(Call<SongRespones> call, Response<SongRespones> response) { 
        List<SongRespones.Songs> listSong; 
        SongRespones songRespones = response.body(); 
        listSong = songRespones.getSongs(); 
        for (SongRespones.Songs songs : listSong) { 
         if (songs.getSinger().getId() == getSingerId) { 
          Log.e(LOG, songs + ""); 
          adapter.addMoreItem(What must I input in here?); 
          recyclerView.setAdapter(adapter); 

         } 
        } 

       } 

       @Override 
       public void onFailure(Call<SongRespones> call, Throwable t) { 
        t.printStackTrace(); 
       } 
      }); 

     } 

請大家幫幫我:

回答

1

我假設你只想顯示所選歌手的歌曲。因此,基本上在您的onResponse方法中創建新列表並添加要顯示的歌曲,最後使用此列表更新您的適配器。

   SongRespones songRespones = response.body(); 
       List<SongRespones.Songs> listSong = songRespones.getSongs(); 
       List<SongRespones.Songs> selectedSingersSongs = new Arraylist(); 
       for (SongRespones.Songs songs : listSong) { 
        if (songs.getSinger().getId() == getSingerId) { 
         Log.e(LOG, songs + ""); 
         selectedSingersSongs.add(songs); 
        } 
       }      
       adapter.addMoreItem(selectedSingersSongs); 

當然,你應該recyclerView.setAdapter(adapter);之前

+0

@santaluThank你這麼多,先生,我跟着你,現在它的工作:d – Vichit

+0

很樂意幫助你。你能接受答案嗎? – santalu

+0

santalu,是的,我可以 – Vichit

相關問題