Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

i have category recyclerview and product recyclerview, and both of them have they own adapter. category recycler view is button for filtering product recyclerview. but i dont know how to make a filter for product adapter from category adapter.

this my category adapter :

public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.ViewHolder>{
    private final List<Category> listData;
    private int row_index = -1;

    public CategoryAdapter(List<Category> listData) {
        this.listData = listData;
    }

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

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
        Category c =listData.get(position);
        holder.name.setText(c.getName());
        Glide.with(holder.itemView).load(c.getPicture_path()).into(holder.image);

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 row_index = position;
                notifyDataSetChanged();
            }
        });

        if (row_index==position) {
            holder.button.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#0098FF")));
            holder.name.setTextColor(Color.parseColor("#FFFFFF"));

        } else {
            holder.button.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#FFFFFF")));
            holder.name.setTextColor(Color.parseColor("#9E9E9E"));
        }
    }

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

    public static class ViewHolder extends RecyclerView.ViewHolder{
        private final TextView name;
        private final ImageView image;
        private final LinearLayout button;
        public ViewHolder(View itemView) {
            super(itemView);
            name = (TextView)itemView.findViewById(R.id.text);
            image = (ImageView) itemView.findViewById(R.id.imageview);
            button = (LinearLayout) itemView.findViewById(R.id.button);
        }
    }
}

and this my Product Adapter

public class ProdukAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private ArrayList<Produk> produks;

    public ProdukAdapter(ArrayList<Produk> produks){
        this.produks = produks;
    }

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

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        Produk produk = produks.get(position);

        TextView name = holder.itemView.findViewById(R.id.produk_name);
        TextView price = holder.itemView.findViewById(R.id.produk_price);
        ImageView images = holder.itemView.findViewById(R.id.produk_image);

        name.setText(produk.getName());
        price.setText(produk.getPrice_after());
        Glide.with(holder.itemView).load(produk.getPicture_path()).into(images);

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(holder.itemView.getContext(), ProdukdetailActivity.class);
                intent.putExtra("name", produk.getName());
                intent.putExtra("price", produk.getPrice_after());
                intent.putExtra("image", produk.getPicture_path());
                holder.itemView.getContext().startActivity(intent);
            }
        });
    }

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

    class ViewHolder extends RecyclerView.ViewHolder {
         public ViewHolder(View view){
             super(view);
         }
    }
}

So i need at holder.itemview.setOnclickLister from category adapter filtering data from product adapter and show it to recyclerview. the filtering like "product.getName().equals"Beef"".

Please Helpme to solve this problem


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
230 views
Welcome To Ask or Share your Answers For Others

1 Answer

等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...