如何在用户在EditText中输入新字符时捕获事件?

时间:2015-07-26 10:49:56

标签: android android-edittext android-keypad

我将EditText限制为数字字符,当用户输入数字并且用户按下“。”时,我需要执行特殊操作。虚拟键盘上的字符。

numberEditText = new EditText(this);
numberEditText.setInputType(InputType.TYPE_CLASS_NUMBER);

我知道存在这个听众:

numberEditText.setOnEditorActionListener(new OnEditorActionListener() {         
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {               
                return false;
            }
        });

但我不知道如何使用它来满足我的需求。

任何帮助都将被授予。

由于

5 个答案:

答案 0 :(得分:1)

编辑:显然它不适用于OP。

if(event.getKeyCode() == KEYCODE_NUMPAD_DOT) { ... }

可行。也许你必须在" KEYCODE_NUMPAD_DOT"

前面添加一些东西。

此处提供所有密钥代码:http://developer.android.com/reference/android/view/KeyEvent.html

答案 1 :(得分:1)

添加文本更改的侦听器。

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

     //Do your stuff here

   }
  });

答案 2 :(得分:1)

这就是 -

editText.addTextChangedListener(new TextWatcher() {

       @Override
       public void afterTextChanged(Editable s) {}

       @Override    
       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       @Override    
       public void onTextChanged(CharSequence s, int start,
         int before, int count) {
          if(s.equals("."))
            editText.setText("");
       }
      });

答案 3 :(得分:1)

您可以将文字观察器与您的编辑文字一起使用,例如

Import-Module BitsTransfer; Start-BitsTransfer '%URL%' '%downloadPath%'

答案 4 :(得分:0)

您可以使用上述代码块获取最后一个inout字符。

getSelectionStart()获取光标位置。输入字符后,光标将移到该字符的右侧。这样就可以通过(光标位置-1)获取最后输入的字符

edt.addTextChangedListener(new TextWatcher(){             @Override             public void beforeTextChanged(CharSequence charSequence,int i,int i1,int i2){

[1,1,1,1,1,1,"hello",1,1,1,1,3,4,6,1,"world",1,1,1,1,3,4,3,"1",1,1,1,1,1,1,1,"welcome",3,4]