-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。

我試圖使用之前的可編輯,但我無法得到它與輸入,如「$ 12,000」。

這是由於InputFilters仍附加到可編輯的。

Regards, Scott。

0

您似乎試圖選擇EditText中的文本。爲此,只需在xml中設置editText.setSelectAllOnFocus(true);android:selectAllOnFocus="true"即可。然後從代碼中刪除整個TextChangedListener。

0

據我所知,這很可能是因爲試圖每次刪除(amountEditText.removeTextChangedListener(this);)並添加(amountEditText.addTextChangedListener(this);)文本更改偵聽器。我建議你在沒有添加和刪除的情況下替換你的代碼。

希望這有助於。