Я зробив кнопку, щоб видалити елемент 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){
}