0

所以我是 Android 新手,并且有这个具有各种按钮的小应用程序。这些按钮可以做很多事情,但特别感兴趣的是那些意图执行另一个活动的按钮。

因为当我愉快地进行编程和测试时,我发现我可以双击这些按钮,有时甚至三次点击这些按钮。

我在 Button 对象上寻找方法,这些方法允许我指定允许单击按钮的次数,或者在单击后是否应该(甚至短暂地)禁用该按钮。我没有找到类似的东西。

难以置信,我开始在谷歌上搜索有关这种奇怪行为的高级讨论。我没有发现任何有趣的讨论,只是关于如何处理我的应用程序中每个按钮上的问题的建议。

重重地叹了口气,我屈服于我的项目的时间需求,并将私有变量添加到我的活动(Java 中没有静态本地变量。废话。),点击处理方法使用它来判断它是否已经忙于处理按钮点击.

但我还是想知道。Android 中的 Button 事件真的必须被显式禁用吗?

编辑:我正在寻找以下形式的答案:“是(或否),我知道它们必须被明确禁用,因为 X”。

4

2 回答 2

1

平台不能假设您只希望允许单击按钮一次,或者您应该能够单击它的频率。只需添加逻辑以在单击按钮后禁用按钮,例如:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick (View v) {
        v.setEnabled(false);
        //Do other stuf
    }
});
于 2013-09-07T18:05:08.637 回答
0

您可以使用droidQuery设置一个按钮或一组按钮来处理第一次点击事件,而不是任何未来的点击事件。例如:

$.with(button).one("click", new Function() {
    @Override
    public void invoke($ d, Object... params) {
        //Do stuff - this will only happen on the first click event
    }
});
于 2013-09-07T18:19:10.183 回答