我正在使用TextWatcher在鍵入時更改EditText的文本。該字符串將新的/替換的文本附加到舊文本,然後顯示它。我只想顯示新的/替換的文本。我試圖保留「以前的」文本的索引,並只顯示已被替換的新文本。我不確定這是否是正確的方式,可能是我完全錯誤的做法,這就是爲什麼它給了我一個超越界限的例外。任何人都可以請幫忙。例如,我鍵入a,然後下一次鍵入b時,文本框中顯示的文本是aab而不是ab,我想刪除此冗餘。下面是我的代碼:同時,我怎樣才能插入新行字符如果一個行字符超過限額如10,後10個字符的字符,應在下一行顯示TextWatcher中的索引超出限制的例外
tw = new TextWatcher()
{
public void beforeTextChanged(CharSequence s,int start,int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
txtData.removeTextChangedListener(tw);
txtData.setText(s.toString().replace("\n", "*"))
txtData.addTextChangedListener(tw);
}
};
txtData.addTextChangedListener(tw);
你想達到什麼目的? atm你寫的每封信都將被單獨處理。我假設你想要處理當前在你的textview中的charsequence。那將是s。你不必調用txtData上的getText(),這是textwatcher所附的edittext,我假設 – 2014-08-27 14:41:45
感謝Daniel的回覆。我根據您的建議對代碼進行了更改,但問題依然存在。我想刪除冗餘/重複的字符,並在n個字符後插入一個新行。例如,如果我鍵入字母a,它會顯示在edittext中,但是當我嘗試輸入下一個字母時,它會將前一個文本附加到下一個/新文本中,例如a然後是aab,然後是aabaabc,然後是aabaabaabc,但我只是想在編輯文本中顯示abc,有無論如何,我可以擺脫冗餘文本?並在edittext中插入一個\ n之後10個字符? – user2387107 2014-08-27 16:28:16