Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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_Multithreading_Android Recyclerview - Fatal编程技术网

Android 在安卓系统中,几秒钟后如何清除RecyClerview数据?

Android 在安卓系统中,几秒钟后如何清除RecyClerview数据?,android,multithreading,android-recyclerview,Android,Multithreading,Android Recyclerview,我有一个关于在android中几秒钟后清除recyclerview的问题。我试着在一个线程中这样做,但对我来说不起作用。我用了这个密码 public void cleardbView() { final Thread countdown = new Thread() { @Override public void run() { try { Thread.sleep(15000);

我有一个关于在android中几秒钟后清除recyclerview的问题。我试着在一个线程中这样做,但对我来说不起作用。我用了这个密码

public void cleardbView()
{
    final Thread countdown = new Thread() {

        @Override
        public void run() {
            try {
                Thread.sleep(15000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        recyclerView = (RecyclerView) findViewById(R.id.dbView);
                        arrayList.clear();
                        layoutManager = new LinearLayoutManager(MainActivity.this);
                        return;
                        }
                    });

            } catch (InterruptedException e) {
            }
            return;
        }
    };
    countdown.start();
}
我在添加数据的部分使用了这段代码。该方法对于所有条件来说都太大了,所以我在这里只放伪代码(我尽量简化它:D)

清除列表后需要使用
arrayList.clear()

适配器。notifyDataSetChanged()

  • 通知所有已注册的观察者数据集已更改
试试这个

public void cleardbView()
{
    final Thread countdown = new Thread() {

        @Override
        public void run() {
            try {
                Thread.sleep(15000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        recyclerView = (RecyclerView) findViewById(R.id.dbView);
                        arrayList.clear();
                        layoutManager = new LinearLayoutManager(MainActivity.this);
                        yourAdapter.notifyDataSetChanged();
                        return;
                        }
                    });

            } catch (InterruptedException e) {
            }
            return;
        }
    };
    countdown.start();
}
清除列表后需要使用
arrayList.clear()

适配器。notifyDataSetChanged()

  • 通知所有已注册的观察者数据集已更改
试试这个

public void cleardbView()
{
    final Thread countdown = new Thread() {

        @Override
        public void run() {
            try {
                Thread.sleep(15000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        recyclerView = (RecyclerView) findViewById(R.id.dbView);
                        arrayList.clear();
                        layoutManager = new LinearLayoutManager(MainActivity.this);
                        yourAdapter.notifyDataSetChanged();
                        return;
                        }
                    });

            } catch (InterruptedException e) {
            }
            return;
        }
    };
    countdown.start();
}

这是一个更好、更短的问题实现,处理程序是后台线程,提供了与UI通信的能力//请查看此处以了解有关线程和处理程序的更多解释


这是一个更好、更短的问题实现,处理程序是后台线程,提供了与UI通信的能力//请查看此处以了解有关线程和处理程序的更多解释


无需反复更换适配器。。只需添加并清除arraylist中的数据,然后通知适配器无需反复更改适配器。。只需添加并清除arraylist中的数据,然后通知AdapterYeees。。这有助于。。。我需要在一些表格中检查:)是的,我知道我只需要等待10分钟lastsHandler比在android中使用线程更好,检查我的解决方案我已经包括了它们之间的差异,抱歉打扰:)是的。。这有助于。。。我需要在一些表格中检查:)是的,我知道我只需要等待10分钟lastsHandler比在android中使用thread更好,检查我的解决方案我已经包括了它们之间的差异,抱歉打扰:)这不是某种委托吗?对不起,但你是什么意思?我不明白试着检查一下这个。。。非常好的“非线程”编程类型:)哦,没有处理程序是后台线程,它们比使用第一个解决方案中给出的基本线程(线程)要好。。。下次我会试试的。。对于我的解决方案,现在最好使用线程:)。。。thx我反对你的建议:)那不是某种代表吗?对不起,你是什么意思?我不明白试着检查一下这个。。。非常好的“非线程”编程类型:)哦,没有处理程序是后台线程,它们比使用第一个解决方案中给出的基本线程(线程)要好。。。下次我会试试的。。对于我的解决方案,现在最好使用线程:)。。。thx我赞成你的建议:)
Handler handler = new Handler();
int delay = 2000; //milliseconds

handler.postDelayed(new Runnable(){
    public void run(){
       RecyclerViewAdapterDataList.clear();
       RecyclerViewAdapter.notifyDataSetChanged();
    }
}, delay);