我試圖Thread.sleep(x)
,我試圖防止來自Android的按鈕被按下多次
setEnabled(false);
setClickable(false);
但既不工作正常。我在某處讀到點擊排隊,因此以前的解決方案沒有奏效。
任何想法?
我試圖Thread.sleep(x)
,我試圖防止來自Android的按鈕被按下多次
setEnabled(false);
setClickable(false);
但既不工作正常。我在某處讀到點擊排隊,因此以前的解決方案沒有奏效。
任何想法?
您可以在onClick中設置一個標誌,例如clickable = false
,一旦點擊一次,然後在需要時重新啓用它。僅在clickable
爲true
時才運行相關的onClick代碼。
您可以在點擊後禁用它。在XML中添加一個聽者的上點擊
<Button
android:id="@+id/button1"
android:layout_height = "wrap_content"
android:layout_width ="wrap_content"
android:text = "lets do this"
android:onClick = "DoIt"
/>
,然後禁用它點擊聽者
public void DoIt(View v){
((Button) v).setEnabled(false);
...your code...
}
這不工作。點擊排隊。因此,如果用戶快速點擊3次,則有3次調用DoIt()方法排隊。一旦第一次調用被執行,該按鈕將被禁用,但是到時候它已經太晚了,另外兩次調用'DoIt()'仍然會發生。 – 2013-03-06 20:40:57
@DavidWasser對於遲到的評論感到抱歉。但也許你沒有把代碼行放在正確的地方。 – 2013-07-24 01:53:17
@CԃաԃԃIt It It where where where where where where where where where where where where where where where where where where where where禁用'onClick()'方法中的按鈕是不可靠的,因爲Android框架將事件隊列中的按鈕單擊事件排隊。當用戶點擊按鈕時,onClick()方法不會同步調用。因此,如果用戶足夠快(或者設備足夠慢),則在調用第一個'onClick()'方法之前總是可以在隊列中獲得多個** click **事件。 – 2013-07-24 09:06:36
謝謝,我用類似的東西(我用的時間檢查) – user1692261 2013-03-06 20:48:25