У меня есть EditText. Когда я нажимаю на него, он становится настраиваемым. Я наберу вводный текст, который нужно ввести в EditText. Я хочу реализовать прослушиватель для EditText, так что, когда я перестаю печатать, он должен автоматически сохранить этот текст в базе данных вместо кнопки. Как получить прослушиватель для EditText, чтобы прослушать, что ввод остановлен или нет?
Реализация Text Watcher для EditText
Ответ 1
set edittext imeOption
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
Используя что-то подобное,
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// Specify your database function here.
return true;
}
return false;
}
});
В качестве альтернативы вы можете использовать интерфейс OnEditorActionListener
, чтобы избежать анонимного внутреннего класса.
Ответ 2
Попробуйте это.
EditText et = (EditText)findViewById(R.id.editText);
Log.e("TextWatcherTest", "Set text xyz");
et.setText("xyz");
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable s) {
Log.e("TextWatcherTest", "afterTextChanged:\t" +s.toString());
}
});
Ответ 3
Добавить это в ваш editText
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});