Я пытаюсь получить, что пользователь внес изменения в EditText, либо вставить, либо удалить. Я использую TextWatcher, но я не получаю правильный результат, более того, иногда «getChar (начало, конец) имеет конец перед запуском».Поиск изменения текста в EditText с помощью TextWatcher
editText = (EditText) findViewById(R.id.MyEditText);
editText.addTextChangedListener(new TextWatcher() {
@override
public void afterTextChanged(Editable s){}
@override
public void beforeTextChanged(CharSequence s, int start, int count, int after){
showToast("text removed: " + s.subSequence(start, count));
}
@override
public void onTextChanged(CharSequence s, int start, int before, int count){
showToast("text added: " + s.subSequence(start, count));
}
}
Как вы можете видеть, я использую beforeTextChanged
, чтобы получить какой-либо текст, который удален пользователем и onTextChanged
для вставки. Прошу пролить свет. Благодаря!
API прямо здесь: http://developer.android.com/reference/android/text/TextWatcher.html#afterTextChanged(android.text.Editable)
EDIT:
я, кажется, чтобы понять это ... это довольно глупо: s.subSequence(start, count))
должно быть действительно s.subSequence(start, start+count))
?? что такое 'fillData (SEARCH_ORDER, s.toString());'? и есть только «Редактируемый s» в 'afterTextChanged', поэтому я не вижу, как эта обратная связь помогает. ' – Arch1tect
Это тот метод, который я реализовал. Вы просто разместите свой код там .. –