[英]How clear RecyClerview Data after few seconds in android?
我有一個關於在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)
if(conditions)
{
insertData();
}
if(inserted)
{
cleardbView();
}
您需要使用yourAdapter.notifyDataSetChanged();
在清除列表后arrayList.clear();
Adapter.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進行通信// //在此處查看有關線程和處理程序的更多說明Handler vs AsyncTask vs Thread
Handler handler = new Handler();
int delay = 2000; //milliseconds
handler.postDelayed(new Runnable(){
public void run(){
RecyclerViewAdapterDataList.clear();
RecyclerViewAdapter.notifyDataSetChanged();
}
}, delay);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.