java - Android - JSONArray 到 RecyclerView 适配器?

标签 java android json android-recyclerview

在我的 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/

相关文章:

java - 我们可以将jsp共享为jar部署在Tomcat 5.5的共享文件夹中吗?

java - 如何将多个 png 图像转换为单个 tiff 文件

java - 从 SharedPreferences 迁移到 Jetpack DataStore "Java"

json - Swift 无法从其他 Swift 文件中提取信息,除非在 @IBAction 中

javascript - 如何提取 d3 图表的名义标签

javascript - 使用纬度和经度在谷歌地图中搜索附近

java - JVM不需要所有的接口(interface)方法都实现吗?

java - 使用 Android (ndk) 在 C++ 中打开和读取文本文件

android - 无法使用 FileProvider 以编程方式将文件附加到电子邮件 Intent

安卓设备镜像PC