单击后,ImageButton不起作用

时间:2014-01-03 13:42:15

标签: android

我做了一个删除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();
                }

            });
}

有人有任何想法吗?

对不起语法错误。

2 个答案:

答案 0 :(得分:3)

第一次单击后,taskManager不再为null,因此您不需要执行执行代码

答案 1 :(得分:1)

根据上面的代码,onClick将会运行一次{而那就是正在发生的事情}

我想你想在添加另一个异步执行之前检查你的AsyncTask的状态:

为此,请用此行替换你的

if(taskManager.getStatus()==Status.FINISHED){ //check required status

    }

别忘了在任何其他条件之前检查一下:

if(taskManager!=null){

    }