Когда вы вызываете
text.setText(str);
внутри onTextChanged
обратного вызова, этот TextView изменит текст еще раз, затем снова будет вызван onTextChanged
.Там будет бесконечный цикл.
edit:
Вы можете добавить флаг bool для этого случая.Пример: isUserInput
.
text.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("test "+s);
if(s.length()>0 && isUserInput)
{
if(counter==0 && s.length()>=5)
{
Log.e("Edit counter 1",String.valueOf(s) );
amount[3]=s.charAt(4);
}
else if (counter==1&& s.length()>=5)
{
Log.e("Edit counter 2",String.valueOf(s) );
amount[2]=amount[3];
amount[3]=s.charAt(4);
}
else if (counter==2 && s.length()>=5)
{
amount[0]=amount[2];
amount[2]=amount[3];
amount[3]=s.charAt(4);
}
else
{
}
String str = "";
for (Character c : amount)
str += c.toString();
System.out.println("Edit test "+str);
text.setText(str);
isUserInput = false;
}else{
isUserInput = true;
}
counter++;
}