java - Android 在循环后将所有对象添加到列表中

标签 java android retrofit2

我尝试在完成循环后将所有对象添加到列表中。 这是我要添加的适配器中的方法。

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

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

这是我使用 Retrofit 的 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();
                }
            });

        }

请帮助我:

最佳答案

我假设您只想显示选定歌手的歌曲。因此,基本上在您的 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);

关于java - Android 在循环后将所有对象添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45648852/

相关文章:

android - 使用改造 ResponseBody 的自定义消息错误

java - HDFS 授予对文件及其所有目录的权限

java - AWS DynamoDB 选择日期范围的查询

android - Flutter - 多个图标改变了每个图标的颜色

android - [Android] [改造]使用拦截器调用不同的API

java - 使用 setOnClickListener 时如何重置 MutableLiveData 列表以显示新数据?

java - Maven:下载文件并运行命令来构建依赖关系

java - 在Java中,是否可以创建一个没有类和构造函数的对象?

android - 添加同一 fragment 的多个实例

Android - strings.xml 无法转义单引号