2011-06-08 224 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