Как сказал
ivanfenenko проблема в рекурсии. Сделайте так:
enter.addTextChangedListener(new TextWatcher() {
private boolean mFormating;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!mFormating) {
mFormating = true;
if(enter.getText().length() != 0) {
String ss= s.toString();
if (!ss.endsWith("$")) {
ss= ss + "$";
enter.setText(ss);
}
} else {
result.setText(null);
}
mFormating = false;
}
}
});
- Во-первых, выставляем флаг, чтобы не запускать код при изменении текста нашим кодом
- Во-вторых, добавляем проверку наличия знака '$' в конце, а то при каждой правке он у нас будет дописываться