2011-06-08 343 views
1

我需要更改單擊按鈕時的文本,所以我使用​​,但視圖只在onClick(View v)函數結束時刷新。刷新按鈕的標籤點擊時

實際上,我需要的是在不等待函數結束的情況下單擊按鈕時更改標籤:單擊按鈕時所做的操作需要相當多的時間。

一個解決方案可能是強制ViewonClick()結束之前刷新,但我不知道是否有可能或如何去做。

另一種解決方案可能是將我在onClick()以外的位置移動到一個新的函數中,該函數在onClick()結束後會被直接調用,但在這裏我不知道該怎麼做。

回答

4

您可能想要設置OnTouchListener並實施onTouch方法。

在這種方法中,您將得到一個MotionEvent並可以收聽MotionEvent.ACTION_DOWN

因此,只要用戶觸摸該按鈕,就可以更改標籤。

+0

這樣做。謝謝。 – leochab 2011-06-08 10:25:19

+0

這是一個快速修復,對於我需要做的事很好,但必須小心,因爲當觸摸按鈕然後滑出按鈕邊界,然後從屏幕釋放手指時,您沒有單擊按鈕,但你已經觸摸它,所以文本被修改 – leochab 2011-06-08 13:50:12

0

您不應該在UI線程上花費任何時間。您應該啓動單獨的工作線程,然後更新按鈕上的文本並從onClick函數返回。

有關如何啓動工作線程,以便在進展和/或完成時更新UI,請參閱AsyncTask

+0

我使用了Keyboardsurfer的解決方案,但我會牢記未來。 – leochab 2011-06-08 10:26:13