为了账号安全,请及时绑定邮箱和手机立即绑定

单个 ListView 中的不同对象

单个 ListView 中的不同对象

慕尼黑8549860 2021-11-03 16:05:30
我有以下问题,我有 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": "юзер"            },                }            ]        }    ]}}
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-11-03
?
青春有我

TA贡献1784条经验 获得超8个赞

首先我改变了布局。所以,最后,我在 1 个布局中放置了 3 个 ListView。


<android.support.v4.widget.SwipeRefreshLayout

    android:id="@+id/swipe"

    android:layout_width="match_parent"

    android:layout_height="wrap_content">


    <android.support.v4.widget.NestedScrollView

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:fillViewport="true">


        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:orientation="vertical"

            android:padding="10dp">


            <ListView

                android:id="@+id/listviewResponse"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:divider="@android:color/transparent"

                android:dividerHeight="10sp"

                android:paddingStart="15dp"

                android:paddingEnd="15dp" />


            <ListView

                android:id="@+id/listviewDirect"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:divider="@android:color/transparent"

                android:dividerHeight="10sp"

                android:paddingStart="15dp"

                android:paddingEnd="15dp" />


            <ListView

                android:id="@+id/listviewOpen"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:divider="@android:color/transparent"

                android:dividerHeight="10sp"

                android:paddingStart="15dp"

                android:paddingEnd="15dp" />

        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

</android.support.v4.widget.SwipeRefreshLayout>

我创建了 3 个不同的适配器并将适配器设置为 Listviews


        @BindView(R.id.listviewResponse)

        ListView listViewResponse;

        @BindView(R.id.listviewOpen)

        ListView listViewOpen;

        @BindView(R.id.listviewDirect)

        ListView listViewDirect;


        private List<Response> responses = new ArrayList<>();

        private List<OpenOrder> open_orders = new ArrayList<>();

        private List<DirectOrder> direct_orders = new ArrayList<>();


        RequestListResponseAdapter adapterResponse;

        RequestListOpenAdapter adapterOpen;

        RequestListDirectAdapter adapterDirect;


        adapterResponse = new RequestListResponseAdapter(getContext(), responses);

        adapterOpen = new RequestListOpenAdapter(getContext(), open_orders, openType);

        adapterDirect = new RequestListDirectAdapter(getContext(), direct_orders);

        listViewResponse.setAdapter(adapterResponse);

        listViewDirect.setAdapter(adapterDirect);

        listViewOpen.setAdapter(adapterOpen);


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信