-
Notifications
You must be signed in to change notification settings - Fork 27
/
ProductAdapter.java
90 lines (76 loc) · 3.1 KB
/
ProductAdapter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package com.azhar.myshop.adapter;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RatingBar;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.azhar.myshop.R;
import com.azhar.myshop.model.ProductModel;
import com.loopj.android.image.SmartImageView;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Azhar Rivaldi on 01/12/2019.
*/
public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.Holdr> {
List<ProductModel> data = new ArrayList<ProductModel>();
private float mWidth, mHeight;
public ProductAdapter(List<ProductModel> data, Context ctx) {
this.data = data;
DisplayMetrics dm = ctx.getResources().getDisplayMetrics();
mWidth = dm.widthPixels / ctx.getResources().getDimension(R.dimen.grid_width);
mHeight = dm.heightPixels / ctx.getResources().getDimension(R.dimen.grid_height);
}
@Override
public Holdr onCreateViewHolder(ViewGroup p1, int p2) {
return new Holdr(LayoutInflater.from(p1.getContext()).inflate(R.layout.item_product, null));
}
@Override
public void onBindViewHolder(Holdr holdr, int pos) {
ProductModel cat = data.get(pos);
holdr.name.setText(cat.name);
holdr.img.setImageUrl(cat.img);
holdr.store.setText(cat.store);
holdr.price.setText(_priceFormat("" + cat.price));
holdr.priceold.setText(_priceFormat("" + cat.price_old));
holdr.priceold.setPaintFlags(holdr.priceold.getPaintFlags() | android.graphics.Paint.STRIKE_THRU_TEXT_FLAG);
holdr.ratingbar.setRating(cat.rating);
}
@Override
public int getItemCount() {
return data.size();
}
public class Holdr extends RecyclerView.ViewHolder {
TextView name, price, priceold, discount, store;
SmartImageView img;
RatingBar ratingbar;
public Holdr(final View view) {
super(view);
view.post(new Runnable() {
@Override
public void run() {
ViewGroup.LayoutParams lp = view.getLayoutParams();
lp.height = (int) mHeight;
lp.width = (int) mWidth;
view.setLayoutParams(lp);
}
});
name = view.findViewById(R.id.itemproductTextViewName);
price = view.findViewById(R.id.itemproductTextViewPrice);
priceold = view.findViewById(R.id.itemproductTextViewPold);
discount = view.findViewById(R.id.itemproductTextViewDisc);
store = view.findViewById(R.id.itemproductTextViewStore);
img = view.findViewById(R.id.itemproductImageView1);
ratingbar = view.findViewById(R.id.itemproductRatingBar1);
}
}
private static String _priceFormat(String s) {
double parsed = Double.parseDouble(s);
String formatted = NumberFormat.getCurrencyInstance().format(parsed);
return formatted;
}
}