我试图从一个Android应用程序制作中的edittext文本框中删除所有非标准字母字符。我正在成功创建一个监听器,获取值并通过正则表达式删除坏的chrs。但是,下面的.setText行导致应用程序崩溃。任何人都有任何想法如何绕过这个并动态掩盖某些chrs?
filenameTextBox.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
FILENAME=s.toString();
FILENAME = FILENAME.replaceAll("[^a-zA-Z]", "");
filenameTextBox.setText(FILENAME);
}
}
答案 0 :(得分:6)
希望如果我清楚地了解您的问题,此片段会对您有所帮助
public void afterTextChanged(Editable editable)
{
if (editable.length() != 0)
{
chatTextArea.removeTextChangedListener(this);
chatTextArea.setText("your text");
chatTextArea.addTextChangedListener(this);
}
}
答案 1 :(得分:0)
你不是在创造一个无限循环吗?您可以在每次调用处理程序时进行记录,并查看它被调用的次数。
答案 2 :(得分:0)
public void onTextChanged(CharSequence s, int start, int before, int count)
{
chatTextArea.removeTextChangedListener(this);
String s_new = s.toString().replaceAll("[^0-9]", ""); // for example, if need
chatTextArea.setText(s_new);
chatTextArea.setSelection(start + count + s_new.length() - s.length());
chatTextArea.addTextChangedListener(this);
}