删除时从Android编辑文本中删除部分字符串

时间:2013-08-12 11:00:34

标签: android android-edittext

当从EditText中删除字符时,我想删除一个完整的文本,如果它匹配一个字符串。这是我有一个值为abc的字符串,如果我从编辑文本中删除字符,它包含abc我需要删除整个单词abc(不是逐字符)。谢谢提前

2 个答案:

答案 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);