2013-05-13 58 views
0

也許這是一個只需要一些邏輯的問題。Android手柄在按鈕上連續敲擊

我們有一個android應用程序調用不同的Web服務並返回數據。在應用程序中有兩個按鈕。我們有10個API(網絡服務)。按鈕1將調用apis 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號碼可以改變。也就是說,如果用戶tapas並等待2秒鐘而沒有錄音,則應該調用相應的API。你能提出建議和機制嗎?

回答

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; 
    } 
}