I have one edit text in Adapter , I have attached addTextChangedListener to it and all methods of it called multiple times , My output is like , If i suppose put Home output comes like H Ho Hom Home
Asked
Active
Viewed 210 times
0
-
Add you code in order to get help – Maxouille Sep 18 '18 at 10:23
-
You should add your textWatcher in `onCreateViewHolder()` method. – Piyush Sep 18 '18 at 10:24
-
holder.etOther.addTextChangedListener(new TextWatcher() { String ans="";@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { ans=arrayList.get(finalI1).getAnswer();}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) { arrayList.get(finalI1).setAnswer(ans+ ""+editable.toString());}}); – Sne Sep 18 '18 at 10:29
-
holder.etOther.addTextChangedListener(new TextWatcher() { String ans="";@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { ans=arrayList.get(finalI1).getAnswer();}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) { arrayList.get(finalI1).setAnswer(ans+ ""+editable.toString());}}); – Sne Sep 18 '18 at 10:44
1 Answers
1
EDIT Using timer to cancel processing while user is typing
You can try to add a Timer to process you text and cancel this processing while the user is typing.
private Timer timer;
myButton.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
// user typed: start the timer
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// do your actual work here
}
}, 600); // 600ms delay before the timer executes the „run“ method from TimerTask
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// nothing to do here
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// user is typing: reset already started timer (if existing)
if (timer != null) {
timer.cancel();
}
}
});
Hope it helps !

Maxouille
- 2,729
- 2
- 19
- 42
-
-
holder.etOther.addTextChangedListener(new TextWatcher() { String ans="";@Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { ans=arrayList.get(finalI1).getAnswer();}@Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}@Override public void afterTextChanged(Editable editable) { arrayList.get(finalI1).setAnswer(ans+ ""+editable.toString());}}); – Sne Sep 18 '18 at 10:32