我正在使用TextWatcher在输入时更改EditText的文本。该字符串将新/替换的文本附加到旧文本然后显示它。我想只显示新的/替换的文本。我试图保留“上一个”文本的索引并仅显示已替换的新文本。我不确定这是否是正确的做法,可能是我完全以错误的方式做到这一点,这就是为什么它给了我一个索引超出限制的异常。有谁可以帮忙。例如,我键入a,下次当我键入b时,文本框中显示的文本是aab而不是ab,我想删除此冗余。下面是我的代码:如果一行的字符超过限制e-g 10,如何插入新行字符,10个字符后的字符应显示在下一行
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);
答案 0 :(得分:0)
我没有尝试过这段代码,因为我刚刚在一位短信发送者身上做了这件事。
这应该每10个符号添加一个换行符。我不完全确定它是否作为一个标志计数,你可能想检查一下。如果它确实计数,如果阻止你将不得不做一点复杂:)
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)
{
if (s.toString().length()%10 == 0) {
txtData.removeTextChangedListener(tw);
txtData.setText(s.toString() + "\n");
txtData.addTextChangedListener(tw);
}
}
};
txtData.addTextChangedListener(tw);