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)
添加回答
舉報