【问题标题】:Delete a part of string from Android edit text when deleting删除时从Android编辑文本中删除部分字符串
【发布时间】:2013-08-12 19:23:09
【问题描述】:

当从 EditText 中删除字符时,如果它与字符串匹配,我想删除一个完整的文本。也就是说,我有一个值为 abc 的字符串,如果我从编辑文本中删除字符并且它包含 abc,我需要删除整个单词 abc(不是逐个字符)。在此先感谢

【问题讨论】:

  • 提前欢迎!你能解释更多吗?
  • @PankajKumar edittext 中有一个单词 abc。删除一些字符后,用户现在位于 c。当他试图删除 c 时,应该删除 abc 而不仅仅是 c

标签: android android-edittext


【解决方案1】:

为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());
}

【讨论】:

    【解决方案2】:

    创建一个 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2017-07-02
      相关资源
      最近更新 更多