Отображение ответа Json в `RecyclerView` с использованием` CardView` в Android Studio на Java - PullRequest
0 голосов
/ 09 октября 2018

Я должен показать свой ответ 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)в представлении переработчика с использованием библиотеки залпов . Пожалуйста, предоставьте несколько связанных шагов. Заранее благодарим за поддержку.

Ответы [ 2 ]

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

Примерно так: ProductCategory class

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);
0 голосов
/ 09 октября 2018

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

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

...