نمایش checkBox در ریسایکلر ویو

0 امتیاز
69 بازدید
سوال شده شهریور 2, 1397 توسط android  
ویرایش شده شهریور 2, 1397 توسط android

سلام

من یکسری آیتم ریسایکلر ویو دارم در قالب لیست درآمد ها که میخوام کاربر وقتی روی یک دکمه کلیک کرد چک باکسی که توی فایل sample ریسایکلرویو قرار دارم Visible بشه و اگر دوباره کلیک کرد Gone بشه اما در حال حاضر فقط بعضی از آیتم ها چک باکسش Visible و Gone میشه .باید چکار کرد که با کلیک روی یه باتن چک باکس های همه ی آیتم ها Visible و Gone بشه

 

 @Override
    public void onBindViewHolder(viewHolder holder, int position) {
        DataModelTransactionMarketer data = list.get(position);

        holder.clearing = data.getClearing();
        holder.id = data.getPrId();
        holder.txtProductNumber.setText("شماره محصول: " + data.getPrId());
       // holder.txtYourMakeMoney.setText("درآمد شما : " + data.getCommissionBrand());
        int cBrand = (int) Math.ceil(data.getCommissionBrand());
        int cStore = (int) Math.ceil(data.getCommissionStor());

        //Log.e("cBrand: ", cBrand+"");
       // Log.e("cStore: ", cStore+"");

        int dif = cBrand + cStore;
        holder.txtYourMakeMoney.setText("پورسانت شما: " + dif);
/*
        if (holder.clearing == 0){
            holder.txtUpDownMoney.setText("بستانکار");
            holder.txtUpDownMoney.setTextColor(mContext.getResources().getColor(R.color.green_600));

        }else {
            holder.txtUpDownMoney.setText("تسویه حساب");
            holder.txtUpDownMoney.setTextColor(mContext.getResources().getColor(R.color.red_700));


        }*/

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                dialogFunc(holder.id, holder.txtPrName, holder.txtCount, holder.txtReqStatus, holder.imgPr, holder.imgBack);
            }
        });


        select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                    if (!isSelectShow){
                        holder.cb_.setVisibility(View.VISIBLE);
                        isSelectShow = true;
                    }else {
                        holder.cb_.setVisibility(View.GONE);
                        isSelectShow = false;
                    }

            }
        });
    }

 

این مطلب را به اشتراک بگذارید

2 پاسخ

0 امتیاز
پاسخ داده شده شهریور 5, 1397 توسط ASHKARAN  
"میخوام کاربر وقتی روی یک دکمه کلیک کرد"

این دکمه توی یکی از آیتم های RecyclerView قرار داره یا بیرون از اون ؟
دارای دیدگاه شهریور 6, 1397 توسط android  
این دکمه بیرون هستش.درواقع یک دکمه ی جداگانه هستش نه اینکه توی هرکدام از آیتمهای ریسایکلرویو
0 امتیاز
پاسخ داده شده شهریور 6, 1397 توسط ASHKARAN  

شما یه کلاس POJO به اسم DataModelTransactionMarketer دارید ...

می تونید یه فیلد بهش اضافه کنید :

Boolean showCheckBox = false ;


public void setShowCheckBox(Boolean state) {
   showCheckBox  = state ;
}


public Boolean getShowCheckBox() {
   return showCheckBox ;
}

زمانی که روی دکمه مذکور کلیک شد می تونید مقدار این attribute رو در لیست کلاس های POJO تغییر بدید ...

با استفاده از این روش برای نمایش چک باکس در تک تک آیتم ها کنترل کافی رو خواهید داشت...

حالا کافیه در Adapter بر اساس مقدار showCheckBox چک باکس رو نشون بدید یا نه...

@Override
    public void onBindViewHolder(viewHolder holder, int position) {
        DataModelTransactionMarketer data = list.get(position);

        holder.clearing = data.getClearing();
        holder.id = data.getPrId();
        holder.txtProductNumber.setText("شماره محصول: " + data.getPrId());
       // holder.txtYourMakeMoney.setText("درآمد شما : " + data.getCommissionBrand());
        int cBrand = (int) Math.ceil(data.getCommissionBrand());
        int cStore = (int) Math.ceil(data.getCommissionStor());

        //Log.e("cBrand: ", cBrand+"");
       // Log.e("cStore: ", cStore+"");


        // CHANGES ARE HERE
        holder.cb_.setVisibility(data.getShowCheckBox()?View.VISIBLE:View.GONE);

        // CHANGES ARE HERE


        int dif = cBrand + cStore;
        holder.txtYourMakeMoney.setText("پورسانت شما: " + dif);
/*
        if (holder.clearing == 0){
            holder.txtUpDownMoney.setText("بستانکار");
            holder.txtUpDownMoney.setTextColor(mContext.getResources().getColor(R.color.green_600));

        }else {
            holder.txtUpDownMoney.setText("تسویه حساب");
            holder.txtUpDownMoney.setTextColor(mContext.getResources().getColor(R.color.red_700));


        }*/

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                dialogFunc(holder.id, holder.txtPrName, holder.txtCount, holder.txtReqStatus, holder.imgPr, holder.imgBack);
            }
        });


        select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                    if (!isSelectShow){
                        holder.cb_.setVisibility(View.VISIBLE);
                        isSelectShow = true;
                    }else {
                        holder.cb_.setVisibility(View.GONE);
                        isSelectShow = false;
                    }

            }
        });
    }

 

دارای دیدگاه شهریور 6, 1397 توسط android  
ممنونم از راهنماییتون

971 سوال

817 پاسخ

1,318 دیدگاه

1,270 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...