【问题标题】:Recycler View update few row every x sec回收站视图每 x 秒更新几行
【发布时间】:2016-04-30 03:28:55
【问题描述】:

我有视图寻呼机。查看寻呼机有 3 个部分/选项卡,它们具有相同的片段。片段包含回收视图。 在 recyclerview 我有行的自定义布局。行包含 textview 和 imagers 。对于 textview 它的计时器应该每 1 秒更新一次。所以现在我正在使用带有固定计划任务的计时器

 Timer timer = new Timer();
  timer.scheduleAtFixedRate( new TimerTask() {
        public void run() {

             textview.settext(updatedvalue);

         }
        }, 0, 1000);

我在 bindViewHolder 中这样做。但现在的问题是这个计时器只适用于几行回收视图。 所以在这它总是调用该行是否可见

所以说我总共有 30 行,计时器适用于第 4 行(这可以是任何值,取决于服务器值)。所以我怎么能只为那一行做这个更新的东西。我的代码在所有行中都发生了,所以它占用了很多内存

【问题讨论】:

  • 使用 ... adapter.notifyItemChanged(index);
  • 每一秒的 adapter.notifyItemChanged 都好吗?
  • 我有一个适用于所有 3 个选项卡的适配器
  • 检查服务器是否有可用的新值...检查 currecnt_value!=new_value 然后通知
  • 不不,值在本地更新,基本上是它的计时器,如时间扩孔值,即它每 1 秒更新一次,无需服务器调用

标签: android android-recyclerview android-timer


【解决方案1】:

一旦我用这个解决了我的问题。希望它会工作

Handler timerHandler;
timerHandler = new Handler();

Runnable timerRunnable = new Runnable() {
    @Override
    public void run() {
        // Here you can update your adapter data
        yourAdapter.notifyDataSetChanged();
        timerHandler.postDelayed(this, 1000); //run every second
    }
};

timerHandler.postDelayed(timerRunnable, 1000); //Start timer after 1 sec

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 2011-12-07
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多