Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动态更新的recyclerView_Android - Fatal编程技术网

Android 动态更新的recyclerView

Android 动态更新的recyclerView,android,Android,假设我有一个应用程序,其中recylcerView的项目需要每秒更新一次(例如计时器应用程序) 我能想到的唯一方法是使用每秒调用notifyDataSetChanged()的TimerTask 这是最佳方式吗?有更好的方法吗?是的,你做得对。此外,还可以使用处理程序: final Handler h = new Handler(); h.post(new Runnable() { @Override public void run() { //Update th

假设我有一个应用程序,其中recylcerView的项目需要每秒更新一次(例如计时器应用程序)

我能想到的唯一方法是使用每秒调用notifyDataSetChanged()的TimerTask


这是最佳方式吗?有更好的方法吗?

是的,你做得对。此外,还可以使用
处理程序

final Handler h = new Handler();
h.post(new Runnable() {
    @Override
    public void run() {

        //Update the list here (by calling notifyDataSetChanged(), for example)

        h.postDelayed(this, 1000);
    }
});

然后,您知道代码将每1000毫秒(也就是1秒)执行一次。

您真的需要每秒钟更新一次列表,或者您可以在事情发生后更新它吗?@joaquin在计时器应用程序中是的,这是必要的。我觉得更好的方法是在视图中设置小部件,但在onBindViewHolder()中启动它。你能发布定时器应用程序的代码吗?这样,您就不需要每次调用notifyDataSetChanged()time@VarunAgarwal代码是waaaay to big to post,对不起。不过我理解你的意思,老实说,这似乎不是一个好主意,但也许我会尝试一下,在bind视图中初始化一个代码不会像长期运行一样困难