在項目過程中,遇到用戶多次連續點擊搜索按鈕造成ListView列表顯示重複數據的情況,造成原因:用戶多次連續點擊,相當於多次向服務器請求數據,所以就加載了多次數據源。故此出現重複數據。解決方法:
private boolean isSearchClick=false;
private boolean processFlag = true; //默認可以點擊
//點擊事件處理
if (processFlag){
setProcessFlag();//設置按鈕在短時間內被重複點擊的有效標識(true表示點擊有效,false表示點擊無效)
isSearchClick=true;
searchGoods();
new TimeThread().start();
}
/**
* 設置按鈕在短時間內被重複點擊的有效標識(true表示點擊有效,false表示點擊無效)
*/
private synchronized void setProcessFlag() {
processFlag = false;
}
/**
* 計時線程(防止在一定時間段內重複點擊按鈕)
*/
private class TimeThread extends Thread {
public void run() {
try {
sleep(1000);
processFlag = true;
} catch (Exception e) {
e.printStackTrace();
}
}
}