Направих бутон за изтриване на елемент от 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();
}
});
}
Някой има ли някаква идея?
Съжаляваме от грешките на граматиката.
Отговори:
3 за отговор № 1след първото щракване taskManager вече не е нулев, така че няма да преминете през изпълняващия код
1 за отговор № 2
Според вашия код по-горе, onClick ще работи веднъж {и това се случва}
Предполагам, че искате да проверите състоянието на AsyncTask, преди да добавите друга асинхрон за изпълнение:
За това моля заменете вашия ако с този ред
if(taskManager.getStatus()==Status.FINISHED){ //check required status
}
не забравяйте да проверите това преди всяко друго условие:
if(taskManager!=null){
}