قرار دادن تایمر ایتم های ریسایکلر ویو - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

قرار دادن تایمر ایتم های ریسایکلر ویو

0 امتیاز

سلام وقت بخیر ، من توی آیتم های RecyclerView یه CountDownTimer قرار دادم که با شروع اکتیویتی به درستی نمایش داده میشه اعداد و شروع به شمارش میکنه اما مشکل اینجاست اگه ایتم ها رو اسکرول کنم  رو به پایین و دوباره به ایتم های قبلی برگردم تایمر به زبون عامیانه ترکیده و اعداد نادرستی رو نشون میده  کسی دلیل این رو میدونه؟ 

 

اینم کد برای چک کردن که قبلا تایمر ساخته نشده باشه اگر مقدارش null بود تایمر رو میسازه

 

if (mListDiscountTab.get(holder.getAdapterPosition()).getmCountDownTimer() == null) {
                        mListDiscountTab.get(holder.getAdapterPosition()).setmCountDownTimer(new CountDownTimer((((mListDiscountTab.get(holder.getAdapterPosition()).getHour() * 60 * 60) + (mListDiscountTab.get(holder.getAdapterPosition()).getMinute() * 60) + (mListDiscountTab.get(holder.getAdapterPosition()).getSecond())) * 1000), 1000) {
                            @Override
                            public void onTick(long millisUntilFinished) {
                                Log.d("herePOU", holder.getAdapterPosition()+"");
                                long sec = (millisUntilFinished / 1000);
                                ((ViewHolderItem) holder).tv_item_timer_hour_home_discount.setText(NumberConverter.Number_English_to_Persian(sec / 3600));
                                ((ViewHolderItem) holder).tv_item_timer_minute_home_discount.setText(NumberConverter.Number_English_to_Persian(((sec % 3600) / 60)));
                                ((ViewHolderItem) holder).tv_item_timer_second_home_discount.setText(NumberConverter.Number_English_to_Persian((sec % 3600) % 60));
                            }

                            @Override
                            public void onFinish() {
                                mListDiscountTab.remove(holder.getAdapterPosition());
                                notifyItemRemoved(holder.getAdapterPosition());
                            }
                        });

 

سوال شده خرداد 27, 1398  بوسیله ی ٍٍٍعرفان (امتیاز 9)   1 1

پاسخ شما

اسم شما برای نمایش (دلخواه):
از ایمیل شما فقط برای ارسال اطلاعات بالا استفاده میشود.
تایید نامه ضد اسپم:

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
...