Android处理按钮上的连续点击

时间:2013-05-13 07:14:22

标签: android button click

可能是一个只需要一些逻辑的问题。

我们有一个Android应用程序,可以调用不同的Web服务并返回数据。在应用程序中有两个按钮。我们有10个API(Web服务)。按钮1将调用api api1,api 2 api 3和api n。按钮2将调用api10,api9,api 8 ... api 1.我在按钮单击中调用API但使用以下代码

handler.postDelayed(new Runnable() {
    public void run() {
        switchToApi(true);
    }
}, 100);

截至目前,实施是在每次点击时调用API。也就是说,如果我点击button1,它将调用api1,我只能在api1完成后执行其他操作。但我想,用户可以不断点击按钮。继续点击不需要调用API。但是api号码可以改变。也就是说,如果用户点击并等待2秒而不进行编带,则应调用相应的API。你能建议和机制吗?

1 个答案:

答案 0 :(得分:0)

请尝试使用以下代码:

public static void ButtonLockThread(final int id, final Activity activity) {
    Thread thread = new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();

            }
            activity.findViewById(id).setClickable(true);
        }

    });
    thread.start();

}

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.armDsarmButton:
        findViewById(R.id.armDsarmButton).setClickable(false);
        WebServiceController.getArmDisarmRelayInfo(this, defaultPanelID);
        Calculations.ButtonLockThread(R.id.armDsarmButton, this);
        break;
    default:
        break;
    }
}