【问题标题】:Android - JSONArray to RecycleView Adapter?Android - JSONArray 到 RecycleView 适配器?
【发布时间】:2017-06-06 00:14:58
【问题描述】:

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

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

但是,在我的应用程序中,我可能在数组中有很多对象。我相信以这种方式循环遍历所有内容会很慢/效率低。

有没有办法将 JSONArray 直接传递给 recycleView 适配器?

【问题讨论】:

  • 是的,有可能。请在尝试时显示您的尝试或错误
  • @JK140 如果对您有帮助,请接受答案作为解决方案

标签: java android json android-recyclerview


【解决方案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();
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2022-12-12
    • 2015-01-05
    • 1970-01-01
    相关资源
    最近更新 更多