-3

다음은 지연 문제를 복제 한 예제입니다. EditTextView에 텍스트를 설정하면 사용자가 다른 문자를 입력 할 수 있도록 최소한 1.5 초가 걸립니다.OnTextChanged()에서 텍스트를 설정 한 후 지연 지연 시간이 지연되는 문제를 복제 한 예제는 다음과 같습니다.

amountEditText.addTextChangedListener(new TextWatcher() { 
     @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
     @Override public void afterTextChanged(Editable s) {} 
     @Override public void onTextChanged(CharSequence s, int start, int before, int count) { 
      String amount = s.toString(); 

      if(!amount.equals(current)) { 
       amountEditText.removeTextChangedListener(this); 
       amountEditText.setText(s); 
       Selection.setSelection(amountEditText.getText(), amountEditText.getText().length()); 
       amountEditText.addTextChangedListener(this); 
      } 
     } 
    }); 

나는 주위를 둘러 보았지만 해결책을 찾지 못했습니다.

+0

이 링크를 확인하십시오. 도움이 될 수도 있습니다 https://github.com/BlacKCaT27/CurrencyEditText – bhaumiksoni

답변

0

문제가 textView.setText() 호출에서 발생한 것으로 확인되었습니다.

해결 방법은 setText()를 사용하지 말고 대신 onTextChanged 콜백에서 제공되는 Editable을 사용하는 것입니다.

"Editable"을 사용하려고했지만 "$ 12,000"같은 입력으로 작업하지 못했습니다.

이는 입력 필터가 여전히 편집 가능으로 연결되어 있기 때문입니다.

감사합니다, Scott.

0

청취자를 제거한 다음 읽었 기 때문에 시간이 지연됩니다.

0

EditText에서 텍스트를 선택하려고하는 것 같습니다. 이렇게하려면 editText.setSelectAllOnFocus(true); 또는 android:selectAllOnFocus="true"을 xml로 설정하면됩니다. 그런 다음 코드에서 전체 TextChangedListener를 제거합니다.

0

내게 따르면 (amountEditText.removeTextChangedListener(this);) 제거하고 (amountEditText.addTextChangedListener(this);) 매번 텍스트 변경 수신기를 추가하려고했기 때문일 가능성이 큽니다. 추가 및 제거하지 않고 코드를 대체 할 것을 권장합니다.

희망이 도움이되었습니다.