Reputation: 3201
I am working on an Android application.In my app I have to use images based on the text.So I write OnChangeListener()
for EditText
.The following is my sample code.
edt.addTextChangedListener(this);
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
CharSequence cs=convert(edt.getText.toString());
edt.setText(cs);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
But I am getting Exception for the above code.I know the reason for the exception is calling setText()
from afterTextChanged()
method. But I have to change the EditText
text value based on the same EditText
text change.Help me friends
Upvotes: 5
Views: 39885
Reputation: 1441
One more solution can be to use boolean variable, so that it doesn't get into infinite callstack and eventually giving stackoverflow exception
public void afterTextChanged(Editable s) {
if(!flag)
{
flag = true;
edt.setText("string");
flag = false;
}
}
Upvotes: 8
Reputation: 4297
Just simply remove your listener before you set the text, and register it again after you are done, like described here:
Clear EditText text after adding onTextChanged implemenation
Upvotes: 2