2016-04-30 11 views
2

私はビューページャーを持っています。ビューのページャには同じセクションを持つ3つのセクション/タブがあります。フラグメントにはrecycleviewが含まれています。 recyclerviewの 私は行のカスタムレイアウトを持っています。行にはtextviewとimagersが含まれています。 textviewのタイマーは1秒ごとに更新されます。今のところ私はfixeスケジュールタスクでタイマーを使用していますRecyclerビューx行ごとに少数の行を更新する

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

      textview.settext(updatedvalue); 

     } 
     }, 0, 1000); 

私はこれをbindViewHolderで行っています。今の問題は、このタイマーはリサイクルビューのほんの数行にしか当てはまりません。 だから、この行のinrespectは常に可視であるかどうかを呼び出す

だから、私は合計30行を持ち、タイマーは最初の4行に適用されます(これはサーバーの値に依存します)。だから私はどのように私はその行のための更新のものを行うことができます。私のコードは、すべての行のためにそれほど多くのメモリを取っているので、

+0

use ... adapter.notifyItemChanged(index); –

+0

毎秒のadapter.notifyItemChangedは良いですか? – andr

+0

私はすべての3つのタブのために1つのアダプタを持っています – andr

答えて

2

一度これを使用して私の問題を解決していた。それがうまくいくことを願っています。

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 
+0

を使用してこれは素晴らしい作品 – user3373603

関連する問題