合并两个不同类型的列表

时间:2018-06-18 14:45:50

标签: java android list api android-recyclerview

我正在尝试组合两个不同类型的列表。 我在Android应用程序中获得两个不同的API响应,第一个列表是定义为

的电影列表列表

公共类列表{

.col-sm-pull-6

}

我使用以下

成功从API中检索列表
@SerializedName("times")
@Expose
private List<String> times = null;
@SerializedName("title")
@Expose
private String title;

/**
 * No args constructor for use in serialization
 *
 */
public Listing() {
}

/**
 *
 * @param title movie title
 * @param times movie times
 */
public Listing(List<String> times, String title) {
    super();
    this.times = times;
    this.title = title;
}

public List<String> getTimes() {
    return times;
}

public void setTimes(List<String> times) {
    this.times = times;
}

public Listing withTimes(List<String> times) {
    this.times = times;
    return this;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public Listing withTitle(String title) {
    this.title = title;
    return this;
}

然后我尝试将类型列表的列表与类型字符串列表组合以创建一个新类,ListingAndImage(该字符串是我将加载到imageview中的URL)

    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }

    ListingApiService listingApiService = retrofit.create(ListingApiService.class);

    Call<ListingResponse> call = listingApiService.getShowtimes(id);
    call.enqueue(new Callback<ListingResponse>() {
        @Override
        public void onResponse(Call<ListingResponse> call, Response<ListingResponse> response)
        {
            List<Listing> listings = response.body().getListings();

我的问题是,哪种方式最好将两个列表组合成一个列表和图像列表,然后我的recyclerview会将其用于显示给用户?

或者,或者,有没有更好的方法来执行此操作,例如将两个列表传递给我的recyclerview?

谢谢

1 个答案:

答案 0 :(得分:0)

您正在寻找的是具有多种视图类型的recyclerView,您将通过简单的谷歌搜索获得大量代码示例。 您可以搜索具有多种视图类型的异构recyclerView或recyclerView等术语,并按照这些示例进行操作。 如果您想使用库,可以试试“Epoxy”。