3 回答
TA贡献1784条经验 获得超8个赞
你可以用处理程序来做到这一点。根据您的要求更改 TIME_DELAY。在类级别定义时间延迟(1000 表示 1 秒)。我已经根据您的要求修改了代码。在这里我添加了 2 秒的延迟。你可以随它去。
val TIME_DELAY : Int = 2000
if (!validTimepattern.matcher(currentTime).matches()){
Handler().postDelayed(object : Runnable{
override fun run() {
timeEditText.setError(“Not a valid time”);
}
}, TIME_DELAY )
}
TA贡献1868条经验 获得超4个赞
您可以使用 Handler.postDelayed 方法实现此目的
private Handler handler = new Handler()
private Runnable runnable = new Runnable() {
public void run()
{
timeEditText.setError("Not a valid time");
}
}
并在 onCreate 内部创建下面的文本观察器并附加以编辑文本
TextWatcher tw = new TextWatcher() {
public void afterTextChanged(Editable s) {
timeEditText.setError(null)
handler.removeCallbacks(runnable)
if (!validTimepattern.matcher(currentTime).matches()){
handler.postDelayed(runnable,3000)
}
}
}
并在 ondestroy 中添加以下行以避免活动被销毁时崩溃
handler.removeCallbacks(runnable)
添加回答
举报