【问题标题】:Android CharSequence filter() troubleAndroid CharSequence filter() 麻烦
【发布时间】:2016-01-20 01:18:30
【问题描述】:

我在使用 EditText 的简单过滤器时遇到问题。
尝试处理删除符号(在某些情况下防止删除符号)。
在此示例中,我想防止删除任何字符。 如果按下退格键 (source=""),我将返回 ""(即什么都没有)
但我仍然可以从 EditText 中删除所有字符。

@Override
public CharSequence filter(CharSequence source, int start, int end,
                           Spanned dest, int dstart, int dend) {

    if (source.equals("")) {
        return "";

    } else {
        return null;
    }
}

在调试过程中,我不知何故进入了return ""
但后来我进入return null


为什么?

【问题讨论】:

  • 这可能只是调试器的问题。您是否尝试打印出返回值?
  • 是的。不知怎的,我得到了两者g

标签: android filter


【解决方案1】:

试试这个

MyEditText.setOnKeyListener(new OnKeyListener() {                 
                public boolean onKey(View v, int keyCode, KeyEvent event) {                 
                     if(keyCode == KeyEvent.KEYCODE_DEL){                        
                           return true; 
                         }                  
                return false;       
                    }
            }); 

【讨论】:

  • 我想在过滤器内部处理删除,以防止删除某些符号
  • 我并没有真正理解你想要什么
  • 想要防止删除edittext中的某些字符。 IE。必须有 3 个数字我不能删除,但其他所有数字都可以(如果数字有更多数字)
  • 这样您就可以通过检查 textView 的内容来实现我的答案
猜你喜欢
  • 2020-05-23
  • 2011-04-24
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多