Java 使用JSON中的图像组进行RecyclerView

Java 使用JSON中的图像组进行RecyclerView,java,android,gridview,android-recyclerview,Java,Android,Gridview,Android Recyclerview,我真的很难在我的应用程序中使用Recyclerview 目前我有一个包含gridview的布局。此gridview由图像填充。图像的路径来自一个以JSON提供的Web服务 这一切都很好,但是 我想将屏幕上的图像组织成不同的组,这些组由web服务提供。我正在考虑创建具有以下布局的子视图: -文本视图(标题) -gridview(图像列表) 然后根据类别的多少,反复循环使用此子视图 我还需要关于JSON文件结构的建议,以使输入更容易。我当前的JSON文件如下所示: [ { path: "upload

我真的很难在我的应用程序中使用Recyclerview

目前我有一个包含gridview的布局。此gridview由图像填充。图像的路径来自一个以JSON提供的Web服务

这一切都很好,但是

我想将屏幕上的图像组织成不同的组,这些组由web服务提供。我正在考虑创建具有以下布局的子视图:

-文本视图(标题) -gridview(图像列表)

然后根据类别的多少,反复循环使用此子视图

我还需要关于JSON文件结构的建议,以使输入更容易。我当前的JSON文件如下所示:

[
{
path: "upload/images/1430572021716.jpg"
},
{
path: "upload/images/1430574003703.jpg"
},
{
path: "upload/images/1430574124119.jpg"
}
]
我正在考虑使用一个嵌套数组,就像我发现的这个例子一样

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}
我真的很困惑。据我所知,具有GridviewLayout的RecyclerView应该能够直接接受图像并处理组头,而无需编写大量代码


这有点漫无边际,但这就是我所处的位置。

你想错了。我很确定您不应该嵌套AdapterViews(ListView、GridView、RecyclerView),所以我实现这一点的方法是使用带有节头的Recycler视图。创建回收器视图适配器时,请确保具有多种类型的视图保持架。然后创建自己的布局管理器来安排标题等

public class Recyclerk extends RecyclerView.Adapter<SomeClass> {
    @Override
    public Object onCreateViewHolder(ViewGroup parent, int viewType) {
         //This is where you decide whether it's a header view or a sub item
        return null;
    }

    @Override
    public void onBindViewHolder(Object holder, int position) {

    }

    @Override
    public int getItemViewType(int position) {
        //This is where you want to tell recycler whether it's a 
        return super.getItemViewType(position);
    }

    @Override
    public int getItemCount() {
        return 0;
    }
}
公共类Recyclerk扩展了RecyclerView.Adapter{ @凌驾 公共对象onCreateViewHolder(视图组父对象,int-viewType){ //这是决定它是标题视图还是子项的位置 返回null; } @凌驾 public void onBindViewHolder(对象持有者,int位置){ } @凌驾 public int getItemViewType(int位置){ //这是你想告诉回收商它是否是一个 返回super.getItemViewType(位置); } @凌驾 public int getItemCount(){ 返回0; } }
为大家欢呼。这让我走上了正确的道路。当我开始实施时,我会发布完整的实施。这是一款全新的安卓百灵鸟,但我即将实现