我需要在单击时更改Button的文本,因此我使用了myButton.setText("New Label")
,但只有在onClick(View v)
函数结束时才会刷新视图。
实际上我需要的是在单击按钮时更改标签而不等待功能结束:单击按钮时我所做的事情需要很长时间。
一种解决方案可能是强制View
在onClick()
结束前刷新,但我不知道是否可行或如何做。
另一个解决办法可能是将我在onClick()
之外的内容移动到一个新函数中,该函数将在onClick()
结束后直接调用,但在这里,我不知道如何我能做到。
答案 0 :(得分:4)
您可能需要设置OnTouchListener并实施onTouch方法。
在此方法中,您将获得一个MotionEvent并可以收听MotionEvent.ACTION_DOWN。
因此,您可以在用户触摸按钮后立即更改标签。
答案 1 :(得分:0)
你不应该在UI线程上做任何耗时的事情。您应该启动单独的工作线程,然后更新按钮上的文本并从onClick
函数返回。
如何启动应该在进展和/或完成时更新UI的工作线程,请参阅AsyncTask
。