EditText 上的 KeyListener:Android

KeyListener on EditText : Android

我的应用程序中有一个 editText,当用户使用 (space) 时,我想 运行 一些代码进入 it.So,请给我一些想法怎么做。

edittext.setOnKeyListener(new OnKeyListener(){

 @Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
            (keyCode == KeyEvent.KEYCODE_SPACE)) { 

        //do code

      return true;

        }        
       return false; 
    }
});

您不需要 KeyListener。使用TextWatcher

((EditText)findViewById(R.id.your_edit_text)).addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(s != null && s.length() > 0 && s.charAt(s.length() - 1) == ' '){
                //dp something
            }
        }
    });
     titleBox.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                    int ssidLength = charSequence.length();
                    if (ssidLength == 0) {
                        return;
                    }
              if (charSequence.charAt(ssidLength - 1)==' ')
               {
                //Do stuff here
               }
                }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

您可以为其添加一个 textListener。在你的 onCreate 中定义 textListener !

例如,我做了这个来检查用户是否输入了正确的电子邮件!

        input_Mobile.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            checkmobile=input_Mobile.getText().toString();
            mobilelength=checkmobile.length();



            if(ss.contentEquals("")){

                b1.setEnabled(false);

            }
            if(mobilelength==10){

                b1.setEnabled(true);

                }else {
                b1.setEnabled(false);


                }

        }   

除此之外还有三个可用的函数。

  1. onTextChanged
  2. beforeTextChanged
  3. 文本更改后

你可以根据需要使用它。

希望对你有帮助

谢谢。