3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以用處理程序來(lái)做到這一點(diǎn)。根據(jù)您的要求更改 TIME_DELAY。在類級(jí)別定義時(shí)間延遲(1000 表示 1 秒)。我已經(jīng)根據(jù)您的要求修改了代碼。在這里我添加了 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貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用 Handler.postDelayed 方法實(shí)現(xiàn)此目的
private Handler handler = new Handler()
private Runnable runnable = new Runnable() {
public void run()
{
timeEditText.setError("Not a valid time");
}
}
并在 onCreate 內(nèi)部創(chuàng)建下面的文本觀察器并附加以編輯文本
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 中添加以下行以避免活動(dòng)被銷毀時(shí)崩潰
handler.removeCallbacks(runnable)

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果你想暫停執(zhí)行一段時(shí)間(例如:毫秒),你可以使用 SystemClock.sleep(3000);
添加回答
舉報(bào)