单个 ListView 中的不同对象

我有以下问题,我有 json 响应,其中包含 3 种不同的对象。我需要在一个列表视图中显示这些数据。我正在使用 GSON 库来反序列化 JSON。


json文件


{

"status": "success",

"data": {

    "responses": [

        {

            "id": 3,

            "status": 0,

            "order": {

                "id": 1,

                "address": "3249-11-4910-0000, Burgaw, NC 28425, США",

                "description": "работа работа ",

                "created_at": 1535671020,

                "status": 0,

                "employer": {

                    "id": 11,

                    "name": "Test1",

                    "surname": "TESTOVICH2",

                    "phone": "777777777777",

                    "email": "qwe@gmail.com",

                    "photo": {

                        "id": 11,

                        "url": "http://link.com/storage/users/photos/a6e0ec9e4bf3e0b3ef0e2f06231169b0.png"

                    }

                }

            },

            "employee": {

                "id": 11,

                "name": "Test1",

                "surname": "TESTOVICH2",

                "phone": "777777777777",

                "email": "qwe@gmail.com",

                "photo": {

                    "id": 11,

                    "url": "http://link.com/storage/users/photos/a6e0ec9e4bf3e0b3ef0e2f06231169b0.png"

                }

            }

        }          

    ],

    "open_orders": [

        {

            "id": 2,

            "address": "улица Шакарима, Алматы 050000, Казахстан",

            "description": "пляжоажга",

            "created_at": 1535676060,

            "status": 0,

            "employer": {

                "id": 12,

                "name": "юзер",

                "surname": "юзер"

            },


                }

            ]

        }

    ]

}

}


慕尼黑8549860
浏览 126回答 2
2回答

波斯汪

制作自定义的 Listview 并在元素的自定义布局中添加所有 3 个项目,假设您不想显示某个特定元素中的所有项目,然后使用属性使其不可见 visibility

青春有我

首先我改变了布局。所以,最后,我在 1 个布局中放置了 3 个 ListView。<android.support.v4.widget.SwipeRefreshLayout&nbsp; &nbsp; android:id="@+id/swipe"&nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; android:layout_height="wrap_content">&nbsp; &nbsp; <android.support.v4.widget.NestedScrollView&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; android:fillViewport="true">&nbsp; &nbsp; &nbsp; &nbsp; <LinearLayout&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:orientation="vertical"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:padding="10dp">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <ListView&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/listviewResponse"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:divider="@android:color/transparent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:dividerHeight="10sp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingStart="15dp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingEnd="15dp" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <ListView&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/listviewDirect"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:divider="@android:color/transparent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:dividerHeight="10sp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingStart="15dp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingEnd="15dp" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <ListView&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/listviewOpen"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:divider="@android:color/transparent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:dividerHeight="10sp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingStart="15dp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:paddingEnd="15dp" />&nbsp; &nbsp; &nbsp; &nbsp; </LinearLayout>&nbsp; &nbsp; </android.support.v4.widget.NestedScrollView></android.support.v4.widget.SwipeRefreshLayout>我创建了 3 个不同的适配器并将适配器设置为 Listviews&nbsp; &nbsp; &nbsp; &nbsp; @BindView(R.id.listviewResponse)&nbsp; &nbsp; &nbsp; &nbsp; ListView listViewResponse;&nbsp; &nbsp; &nbsp; &nbsp; @BindView(R.id.listviewOpen)&nbsp; &nbsp; &nbsp; &nbsp; ListView listViewOpen;&nbsp; &nbsp; &nbsp; &nbsp; @BindView(R.id.listviewDirect)&nbsp; &nbsp; &nbsp; &nbsp; ListView listViewDirect;&nbsp; &nbsp; &nbsp; &nbsp; private List<Response> responses = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; private List<OpenOrder> open_orders = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; private List<DirectOrder> direct_orders = new ArrayList<>();&nbsp; &nbsp; &nbsp; &nbsp; RequestListResponseAdapter adapterResponse;&nbsp; &nbsp; &nbsp; &nbsp; RequestListOpenAdapter adapterOpen;&nbsp; &nbsp; &nbsp; &nbsp; RequestListDirectAdapter adapterDirect;&nbsp; &nbsp; &nbsp; &nbsp; adapterResponse = new RequestListResponseAdapter(getContext(), responses);&nbsp; &nbsp; &nbsp; &nbsp; adapterOpen = new RequestListOpenAdapter(getContext(), open_orders, openType);&nbsp; &nbsp; &nbsp; &nbsp; adapterDirect = new RequestListDirectAdapter(getContext(), direct_orders);&nbsp; &nbsp; &nbsp; &nbsp; listViewResponse.setAdapter(adapterResponse);&nbsp; &nbsp; &nbsp; &nbsp; listViewDirect.setAdapter(adapterDirect);&nbsp; &nbsp; &nbsp; &nbsp; listViewOpen.setAdapter(adapterOpen);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java