Как я могу отобразить setError() только для определенного количества времени?
if(editText.getText().length()==0)
editText.setError("please input text");
Могу ли я заставить его исчезнуть через несколько секунд?
Попробуй это:
Используйте Handler в методе OnCreate, чтобы сохранить обратную ссылку на поток пользовательского интерфейса из потока Non ui, потому что, как только мы создаем Thread, мы удаляемся из потока Ui. Извините за неудобства для левой строки в предыдущий пост. Теперь он будет работать так, как вам хотелось
Handler h;
onCreate(......) {
h = new Handler();
....
....
}
if(editText.getText().length()==0) {
editText.setError("please input text");
new Thread (new Runnable() {
public void run(){
try{
Thread.sleep(1000);
h.post(new Runnable() {
editText.setText(""); // this will put the non-ui work on the ui thread back
}
}catch(Exception ex){}
}
}.start();
}
editText.setText("")
должен быть после Thread.sleep внутри потока.
Подумайте, используя уведомление тоста.
null
через фиксированный промежуток времени!