在我的 Android 应用程序中,我获得了对象的 JSONArray。是否可以将其直接传递到 recycleView 适配器中?
我见过的所有recycleView实现都是先获取JSONArray数据,然后循环遍历数组中的每个对象,将值传递给一个自定义的POJO(Plain old java object),并添加到自定义的arrayList中Java 对象,然后将此 arrayList 用于 recycleView 适配器。
但是,在我的应用程序中,数组中可能有很多对象。我相信以这种方式遍历所有内容会很慢/效率低下。
有没有办法将 JSONArray 直接传递给 recycleView 适配器?
最佳答案
当然可以。只需定制一个适配器:
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();
}
}
关于java - Android - JSONArray 到 RecyclerView 适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379559/