0

你怎么能实时计算按键次数?还是通过按键?这是我的代码:

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中获取按键次数?谢谢。

4

1 回答 1

1

您是在尝试使用真正的键盘还是软件键盘?

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) 试试keyCounter++;无条件查看是否调用了onKey。

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

于 2013-01-17T20:36:04.967 回答