Отображение ответа Json в RecyclerView с использованием CardView в Android Studio на Java

Я должен показать свой ответ JSON в представлении ресайклера с использованием представления карты с использованием библиотеки залпов. Мой ответ JSON выглядит примерно так

{
"id": 87,
"parent_id": 0,
"shipping": {
    "first_name": "JPbrajesh",
    "last_name": "kumar",
            },
"payment_method": "COD",
"line_items": [
    {
        "id": 16,
        "name": "abc",
        "price": 85
    },
    {
        "id": 17,
        "name": "zxc",
        "price": 38
    },
    {
        "id": 18,
        "name": "asd",
        "price": 136
    }
            ],
"tax_lines": [],
"shipping_lines": [
    {
        "id": 19,
    }
],
"fee_lines": [],
"_links": {
    "self": [
        {
            "href": "https://example.com/wp-json/wc/v2/orders/87"
        }
    ],
    "collection": [
        {
            "href": "https://example.com/wp-json/wc/v2/orders"
        }
    ]
}

}
`Мне нужно показать (Line_items) в представлении ресайклера, используя волейбольная библиотека. Пожалуйста, предоставьте некоторые связанные шаги. Заранее спасибо за любезную поддержку.

вам следует попробовать следовать некоторым учебным пособиям в Интернете, и когда у вас будет приличный объем java-кода, я уверен, что каждый будет готов помочь.

letsCode 09.10.2018 16:33

Где у тебя проблемы? Разбор JSON? Создание Adapter? Создаете макет? Все вышеперечисленное?

Barns 09.10.2018 17:03
2
2
495
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Volley - это библиотека для запроса информации. Когда Volley удастся, вы получите этот ответ JSON. После этого вам нужно проанализировать Line_items и передать их адаптеру RecyclerView.

Надеюсь, это поможет.

Ответ принят как подходящий
  1. Сначала вы можете создать класс LineItem как модель для линейных элементов.
  2. Затем в действии, в котором вы хотите использовать данные, создайте список позиций и заполните этот список данными из вашего json-объекта.
  3. создать макет для этого элемента строки
  4. создать класс адаптера
  5. объявите адаптер и передайте ему список, а затем присоедините адаптер к recyclerview.

Что-то вроде этого: ProductCategory класс

package com.pesabay.pesabay;

/**
 * Created by Valentin_Kavakure on 20-Jun-17.
 */

public class ProductCategory {
    private int id,niveau,order,premier,nbrProduits;
    private String name;
    private String image;

    public ProductCategory() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ProductCategory(int id) {
        this.id = id;
    }


    public int getId() {
        return id;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}

Затем макет:

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.v7.widget.CardView xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:layout_margin = "5dp"
    app:cardElevation = "6dp">

    <LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:orientation = "vertical"
        android:padding = "5dp">

        <ImageView
            android:id = "@+id/image"
            android:layout_width = "match_parent"
            android:layout_height = "150dp"
            app:srcCompat = "@drawable/bluebg" />

        <TextView
            android:id = "@+id/title"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content" />
    </LinearLayout>
</android.support.v7.widget.CardView>

Адаптер:

public class CatGridAdapter extends RecyclerView.Adapter<CatGridAdapter.ViewHolder> {
    private List<ProductCategory> categoryList;
    private Context context;
    private RecyclerViewClickListener recyclerViewClickListener;

    public void setRecyclerViewClickListener(RecyclerViewClickListener recyclerViewClickListener) {
        this.recyclerViewClickListener = recyclerViewClickListener;
    }

    public CatGridAdapter(List<ProductCategory> categoryList, Context context) {
        this.categoryList = categoryList;
        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(context).inflate(R.layout.category_grid_layout,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.title.setText(categoryList.get(position).getName());
    }

    @Override
    public int getItemCount() {
        return categoryList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        ImageView imageView;TextView title;
        public ViewHolder(final View itemView) {
            super(itemView);
            title=(TextView)itemView.findViewById(R.id.title);
            imageView=(ImageView)itemView.findViewById(R.id.image);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (recyclerViewClickListener!=null) {
                         recyclerViewClickListener.recyclerViewItemClicked(v, getAdapterPosition());
                    }
                }
            });
        }
    }
}

И в моей деятельности:

        recyclerView=(RecyclerView)findViewById(R.id.recycler_data);
        categoryList=new ArrayList<>();
        catGridAdapter=new CatGridAdapter(categoryList,CategoryGrid.this);
        pg=(ProgressBar)findViewById(R.id.pg);
        catGridAdapter.setRecyclerViewClickListener(new RecyclerViewClickListener() {
            @Override
            public void recyclerViewItemClicked(View view, int position) {
                /* some code*/
        });
        gridLayoutManager=new GridLayoutManager(CategoryGrid.this,2);

        recyclerView.setLayoutManager(gridLayoutManager);
        recyclerView.setAdapter(catGridAdapter);

Другие вопросы по теме