Как установить время задержки сообщений об ошибках в приложении для Android с Kotlin - PullRequest
0 голосов
/ 07 декабря 2018

В настоящее время я создаю приложение для Android с AndroidStudio и kotlin.Я дошел до того, что создал журнал действий, и у меня есть код ниже в функции в kotlin class:

Username.error = null
val emailStr = Username.text.toString()

var cancel = false
var focusView: View? = null

if (TextUtils.isEmpty(emailStr)) {
        Username.error = getString(R.string.error_field_required) //Username is the name of the editText in the layout xml file
        focusView = Username
        cancel = true
    } else if (!isEmailValid(emailStr)) {
        Username.error = getString(R.string.error_invalid_email)
        focusView = Username
        cancel = true
    }

if (cancel) {
    //If there was an error don't attempt login and focus the form field with an error.
    focusView?.requestFocus()
}

Код работает хорошо с одним исключением.Отображаемое сообщение об ошибке остается, пока я не коснусь текстовой области.Моя проблема в том, что он покрывает некоторые другие вещи, поэтому я хотел бы, чтобы он исчез, скажем, через 3 секунды.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

С помощью androidx вы можете сделать это, чтобы устранить ошибку через три секунды:

//create a handler as class variable
val handler = Handler()

/in your method:
if (cancel) {    
    handler.postDelayed(3000){Username.error = null}
    focusView?.requestFocus()
}

без androidx:

if (cancel) {    
    handler.postDelayed({Username.error = null}, 3000)
    focusView?.requestFocus()
}
0 голосов
/ 07 декабря 2018

Я не совсем уверен, как отображается сообщение об ошибке, но если его удалить, установив его в ноль, вы можете сделать что-то подобное в if(cancel)

if (cancel) {
    focusView?.requestFocus()
    launch() { //new thread so we don't lock the UI
        delay(3000) //wait 3000 ms
        Username.error = null
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...