繁体   English   中英

EditText上的KeyListener:Android

[英]KeyListener on EditText : Android

我在我的应用程序中有一个editText,我想在用户使用(空格)时运行一些代码。所以,请给我一些关于如何做到这一点的想法。

您不需要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
            }
        }
    });
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; 
    }
});

您可以为它添加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. afterTextChanged

你可以根据你的需要使用它。

希望它能帮到你

谢谢 。

     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) {

        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM