Android - JSONArray到RecycleView适配器?

时间:2017-06-06 00:14:58

标签: java android json android-recyclerview

在我的Android应用中,我获得了一个JSONArray对象。是否可以直接将其传递给recycleView适配器?

我见过的所有recycleView实现首先获取JSONArray数据,然后循环遍历数组中的每个对象,并将值传递给自定义POJO(Plain old java对象)并将其添加到自定义的arrayList中Java对象,然后将此arrayList用于recycleView适配器。

然而,它是我的应用程序,我可能在数组中有很多对象。我认为以这种方式循环遍历它将是缓慢/低效的。

是否有将JSONArray直接传递给recycleView适配器?

1 个答案:

答案 0 :(得分:1)

当然可以。只需自定义适配器:

public class Adapter extends RecyclerView.Adapter<MoviesAdapter.MyViewHolder> {

private JSONArray array;

public class MyViewHolder extends RecyclerView.ViewHolder {
    public TextView property;

    public MyViewHolder(View view) {
        super(view);
        property = (TextView) view.findViewById(R.id.some_view);

    }
}


public Adapter(JSONArray arr) {
    this.array = arr;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.list_row, parent, false);

    return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    Movie movie = moviesList.get(position);
    holder.property.setText(array.get(position).property);

}

@Override
public int getItemCount() {
    return array.length();
}
}