2017-05-09 25 views
0

所以我有一個關聯OnClickListener的按鈕。每次點擊按鈕,我都想執行一些發送網絡請求的代碼。但是,如果用戶快速點擊三次按鈕,我的代碼會執行三次。我試圖找到一種方法,可以在某種程度上檢查我只發送網絡請求的位置,例如,如果第二秒沒有接下來的敲擊,就會發送。防止onClick偵聽器的快速觸發器

有關我如何實現這一目標的任何建議?該按鈕位於RecylerView項中,因此該邏輯在適配器中實現。

+0

您可以在網絡請求完成之前禁用該按鈕嗎?或者忽略點擊直至完成? – Cheticamp

+0

好主意,但不知道如何實現,只要onClickListener住在視圖的持有人適配器。 – ardevd

+0

也許你可以忽略後續的請求,如果一個已經在運行 –

回答

0

您可以將系統毫秒函數中的毫秒保存在變量中。無論何時點擊,您都可以看到它是否足夠長,將變量更改爲當前值。否則,敬酒。僞代碼示例:

int millisecond = 0 
onButtonClicked{ 

currentmilliseconds - milliseconds is less than given time in milliseconds, give toast 
else, run network code & millisecond = current millisecond 
} 
+0

不知道如何保持跟蹤,只要OnClickListener位於適配器視圖中。 – ardevd

+0

如果你說你會得到一個錯誤,說它必須是最終的,你可以在這樣的外部創建它: – Vicky

+0

int millisecond; public void onCreate() – Vicky