当从EditText中删除字符时,我想删除一个完整的文本,如果它匹配一个字符串。这是我有一个值为abc的字符串,如果我从编辑文本中删除字符,它包含abc我需要删除整个单词abc(不是逐字符)。谢谢提前
答案 0 :(得分:0)
为EditText的onKeyPress注册一个处理程序,当你获得删除按钮的KEYCODE
时,处理它并使用如下内容:
String a = "aaabccc";
String b = "abc";
EditText et;
if(a.contains(b) && ((a.indexOf(b) + b.length()) == et.getSelectionStart())
{
et.setText(et.getText().delete(et.getSelectionStart()-b.length(), et.getSelectionStart())).toString());
}
答案 1 :(得分:0)
一个好方法是创建一个TextWatcher:
private final TextWatcher mTextEditorWatcher = new TextWatcher() {
public int oldLength = 0;
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if ((oldLength > s.length())){
editText.setText("");
oldLength = 0;
}else
oldLength = s.length();
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
};
editText.addTextChangedListener(mTextEditorWatcher);