在我的Android应用中,我获得了一个JSONArray对象。是否可以直接将其传递给recycleView适配器?
我见过的所有recycleView实现首先获取JSONArray数据,然后循环遍历数组中的每个对象,并将值传递给自定义POJO(Plain old java对象)并将其添加到自定义的arrayList中Java对象,然后将此arrayList用于recycleView适配器。
然而,它是我的应用程序,我可能在数组中有很多对象。我认为以这种方式循环遍历它将是缓慢/低效的。
是否有将JSONArray直接传递给recycleView适配器?
答案 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();
}
}