android按钮以及它们如何工作

时间:2013-04-29 06:39:00

标签: java android onclick android-button

我知道如何禁用按钮以防止它被点击两次。但是如果我想在安全的情况下再次启用它,我可以做这样的事情,我在onclick上调用setenabled(true)吗?一旦调用setenabled(false),按钮是否被禁用,或者仅在onclick功能完成时禁用该按钮?

   button.setOnclickListener(new View.onClickListener(){

          public void onClick(View v) {
                button.setEnabled(false);
                /// do stuff
                button.setEnabled(true);
          }
    });

1 个答案:

答案 0 :(得分:3)

为什么不让它变得更简单?

使用boolean作为标志来检查进程何时运行。如果它正在运行,请不要运行它,直到先前的过程没有完成。

下面的代码示例将确保在任务运行时,onClickListener()将不会触发。无需担心禁用然后再次启用它。

修改

经过长时间讨论(在评论中),Zabri。只是为了踢,我尝试了我最初发布的解决方案。事实证明,毕竟他正确。 : - (

我在初始解决方案中错了(未经测试,但 boo hoo 给我)。所以,时间来吸收和发布一个有效的测试解决方案。

指向 Zabri 的完整道具,指出代码中明显的缺陷。 : - )

例如(TESTED CODE):

boolean taskRunning = false;
button1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        if (taskRunning == false) {

            // TOGGLE THE boolean HERE TO INDICATE RUNNING
            taskRunning = true;

            // / do stuff

            // TOGGLE THE boolean HERE TO INDICATE TASK COMPLETED
            taskRunning = false;

        }

    }
});

如上所述,这是未经测试的代码。我只是在这里打字。