Java 如何在android中实时计算按键时间

Java 如何在android中实时计算按键时间,java,android,keypress,Java,Android,Keypress,如何实时计算按键次数??还是用按键? 这是我的密码: public class MyActivity extends Activity implements View.OnClickListener, View.OnKeyListener { /** * Called when the activity is first created. */ EditText ed @Override public void onCreate(Bundle

如何实时计算按键次数??还是用按键? 这是我的密码:

public class MyActivity extends Activity implements View.OnClickListener, View.OnKeyListener {
    /**
     * Called when the activity is first created.
     */
    EditText ed

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

        ed=(EditText)findViewById(R.id.editText);
       ed.setOnKeyListener(this);
       }

   @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {

            keyCounter++;
      Log.d("key","" + keyEvent.getKeyCode());

     return super.onKeyUp(i, keyEvent) ;
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_B:

                keyCounter++;
                return true;
        }

        return super.onKeyUp(keyCode, event);
    }
}
我试了onkeyup和on-key两种。。但它不起作用;
我对keyCounter的值进行了优化,但仍然为零。有人知道如何在安卓系统中获得按键次数吗??谢谢。

你是用真键盘还是用软件键盘

android.view.view.OnKeyListener

课程概述

硬件键事件调度到此视图时调用的回调的接口定义

看看是否可以改用TextChangedListener

myEditText.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 stuff
        }

    });
其他事项:

1) 使用Log.d代替Toast

2) 试试键盘计数器++;没有条件查看是否调用onKey


3) 将return false/true更改为return super.onKey(keyCode,event)

Toast是一种可怕的调试方式。。您是否已删除Log.d(“tag”、“Soemthing”)中的if部分以检查是否调用了onKey。仍然相同。我将返回值更改为您所说的值。不走运。我希望您使用的是硬件键盘,而不是软件键盘;-)模拟器?Ahm没有即时消息使用我的设备。:)哇,真管用。你的代码在模拟器上运行。addtextchange()。但是为什么它不能在真正的设备上工作呢?