如果用户按下空格,如何从编辑文本中立即删除SPACE?

Jan*_*ela 7 android textwatcher android-edittext

我有一个edittext和一个观察SPACE是否到达的textwatcher.如果它是一个空间我想立即删除它.或者,如果它是一个空间我想确保它不会出现但是以某种方式指示(seterror,toast)用户不允许空间.

edittext.addTextChangedListener(new TextWatcher() {

    public void afterTextChanged(Editable s) {

                   //---//
                  }
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    public void onTextChanged(CharSequence s, int start, int before, int count) {}
        }); 
Run Code Online (Sandbox Code Playgroud)

我无法在afterTextChaned方法中定义onkeydown,因为它给了我一个错误.

 public boolean onKeyDown(int keyCode, KeyEvent event) {
                super.onKeyDown(keyCode, event);

                if (keyCode == KeyEvent.KEYCODE_SPACE) {

                }
    }
Run Code Online (Sandbox Code Playgroud)

所以它不起作用(语法错误,错误的构造为int keyCode.

提前谢谢你!

Luk*_*rog 40

解决方案通常更简单:

@Override
public void afterTextChanged(Editable s) {
    String result = s.toString().replaceAll(" ", "");
    if (!s.toString().equals(result)) {
         ed.setText(result);
         ed.setSelection(result.length());
         // alert the user
    }
}
Run Code Online (Sandbox Code Playgroud)

这不应该有先前尝试的问题.