java - 我无法将一个数组列表添加到另一个数组列表中

标签 java android

实际上我有一个过滤数组。我想将该 ArrayList 存储在另一个 ArrayList 中,但它没有添加。我正在将一个模型保存到另一个模型。因为我只想要那个 filteredlist

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ComboViewHolder> {

    private ArrayList<Products> catList;
    private ArrayList<FilteredCategorymodel> filterList;


    Context context;
    int count = 0;
    //    ArrayList<FilteredCategorymodel> filterModel;
    SharedPrefrences sharedPrefrences;

    boolean isClicked = true;

    public ProductAdapter(Context context, ArrayList<Products> catList) {
        this.catList = catList;
        this.context = context;
    }

    @Override
    public ComboViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).
                inflate(R.layout.combo_list_item, parent, false);
        return new ComboViewHolder(itemView);
    }


    @Override
    public void onBindViewHolder(final ComboViewHolder holder, final int position) {

        final Products products = catList.get(position);
        Log.e("Products Items::::", products + "");
        holder.mProductName.setText(products.getProduct_name());
        holder.mProductDescription.setText(products.getProduct_description());
        holder.mDescription.setText(products.getRecipe_method());
        holder.mPrice.setText(products.getPrice());


        Picasso.with(context)
                .load(Constants.Image_Path + products.getProduct_image())
                .placeholder(R.drawable.common_signin_btn_icon_focus_light) // optional
                .error(R.drawable.common_signin_btn_icon_dark)         // optional
                .into(holder.mPImage);

        holder.mPImage.setTag(holder);

        holder.btnIncrese.setTag(position);
        holder.btnDecrese.setTag(position);


        holder.btnIncrese.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int mPosition = (int) v.getTag();
                Log.e("mPosition~", mPosition + "~" + position);
                count = catList.get(mPosition).getCount() + 1;


                for (int i = 0; i < catList.size(); i++) {

                    filterList = new ArrayList<FilteredCategorymodel>();
                    filterList.add(catList.get(i));
                }

                basketCount = basketCount + 1;
                catList.get(mPosition).setCount(count);
                holder.mQuantity.setText(Integer.toString(products.getCount()));
                ProductActivity.updateSum(basketCount);
            }
        });

        holder.btnDecrese.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                int position = (Integer) v.getTag();
                int mPosition = (int) v.getTag();
                if (catList.get(mPosition).getCount() < 1) {
                    holder.mQuantity.setText("0");

                } else {
                    count = catList.get(mPosition).getCount() - 1;
                    basketCount = basketCount - 1;
                    catList.get(position).setCount(count);

                    Log.e("COUNT::::", count + "");
                    holder.mQuantity.setText(Integer.toString(products.getCount()));

                    ProductActivity.updateSum(basketCount);
//                    sharedPrefrences = new SharedPrefrences();
//                    sharedPrefrences.addFavorite(context, catList.get(mPosition));
//                    Toast.makeText(context, "Fave",
//                            Toast.LENGTH_SHORT).show();
//                    Log.e("COUNT::::", count + "");
                }

            }
        });

    }

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

最佳答案

因为每次你在循环中创建新的arraylist。 这样做。

holder.btnIncrese.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int mPosition = (int) v.getTag();
            Log.e("mPosition~", mPosition + "~" + position);
            count = catList.get(mPosition).getCount() + 1;

             filterList = new ArrayList<FilteredCategorymodel>();
            for (int i = 0; i < catList.size(); i++) {


                filterList.add(catList.get(i));
            }

            basketCount = basketCount + 1;
            catList.get(mPosition).setCount(count);
            holder.mQuantity.setText(Integer.toString(products.getCount()));
            ProductActivity.updateSum(basketCount);
        }
    });

关于java - 我无法将一个数组列表添加到另一个数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875435/

相关文章:

java - Java的 `Double.MIN_NORMAL`和 `Double.MIN_VALUE`之间的区别?

java - 我应该将同一个表与 JPA 用于 2 个应用程序和 2 个实体吗?

java - 在 java 代码中运行 R 脚本并将 r 结果输出到文本文件

android - Admob 在 Android 应用程序中的横幅比屏幕大

android - 如何在 android 中按需更改通话语音? (将男人换成女人等)

java - 从 CFML 访问 JAVA 类和函数 - 对象实例化异常

java - 使用 javax.mail 在电子邮件中发送笑脸/表情符号

Android RelativeLayout 和 layout_width ="match_parent"的 child

android 异步任务更新到执行后的 ListView

android - 当下一个依赖于前一个时,如何连接多个 RxJava observable?