RecyclerView包含来自JSON的图像组

时间:2015-05-27 20:06:47

标签: java android gridview android-recyclerview

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

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

这一切都很好,但是......

我想将屏幕上的图像组织到Web服务提供的不同组中。我正在考虑创建一个具有以下布局的子视图:

-textview(标题) -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应该能够直接接受图像并处理组的标题,而不需要大量的代码。

它有点絮絮但是它在哪里。

1 个答案:

答案 0 :(得分:0)

你在考虑这个错误。我很确定你不应该嵌套AdapterViews(ListView,GridView,RecyclerView),所以我实现这个的方法是使用带有节头的Recycler View。创建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;
    }
}