У меня есть EditText в моем коде Android, и я хочу показать сообщение Toast после того, как пользователь прекратит редактировать поле.
final EditText kurz = findViewById(R.id.kurz);
kurz.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) { Toast.makeText(context, getString(R.string.saved_settings), Toast.LENGTH_SHORT).show();}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(s.length() != 0) {
String waketime = String.valueOf(kurz.getText());
getSharedPreferences("MY_PREFERENCE", MODE_PRIVATE).edit().putString("xxxx", waketime).apply();
}
else { kurz.setText("1");
}
}
});
Сначала я попытался добавить Toast к onTextChanged
- логически это показывалоТост каждый раз, когда пользователь изменял что-либо в поле.
Затем, как вы можете видеть в моем коде, я вставил Тост в afterTextChanged
, но ничего не изменилось.Сообщение показывается каждый раз, когда пользователь что-то вводит, поэтому сообщение отображается много раз.
Я хочу показать тост только один раз, после того, как пользователь закончил редактировать поле (фокус остается там, так как этотолько поле).
Таким образом, если после редактирования есть 5-секундная пауза, это, вероятно, означает, что пользователь закончил редактирование и в этом случае показывает только тост