在项目过程中,遇到用户多次连续点击搜索按钮造成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();
}
}
}