我做了一个删除ListView项的按钮。它在第一次点击时工作正常,但是如果我再次尝试点击它,它就不再起作用了。
这是onClickListener代码:
OnClickListener clickBtnExcluir = new OnClickListener() {
@Override
public void onClick(View v) {
if (taskManager == null) {
taskManager = new AsyncTaskManager(context);
final Entity entity = (Entity) v.getTag();
Service service = new Service();
taskManager.executeTask(service, new String[] { cod1, cod2 }, new OnAsyncTaskCompleteListener<Return>() {
@Override
public void onTaskCompleteSuccess(Return result) {
if (result == Return.YES) {
refreshList();
}
}
@Override
public void onTaskFailed(Exception cause) {
}
});
}
}
};
这是refreshList
方法
public void refreshList() {
taskManager = new AsyncTaskManager(context);
ListService listService = new ListService();
taskManager.executeTask(listService , new String[] { cod1, "1", "0" },
new OnAsyncTaskCompleteListener<List<Entity>>() {
@Override
public void onTaskFailed(Exception cause) {
}
@Override
public void onTaskCompleteSuccess(List<Entity> result) {
listView.refreshDrawableState();
mainList = result;
notifyDataSetChanged();
}
});
}
有人有任何想法吗?
对不起语法错误。
答案 0 :(得分:3)
第一次单击后,taskManager不再为null,因此您不需要执行执行代码
答案 1 :(得分:1)
根据上面的代码,onClick将会运行一次{而那就是正在发生的事情}
我想你想在添加另一个异步执行之前检查你的AsyncTask的状态:
为此,请用此行替换你的
if(taskManager.getStatus()==Status.FINISHED){ //check required status
}
别忘了在任何其他条件之前检查一下:
if(taskManager!=null){
}