为什么KeyEvent getRepeatCount总是返回0?

时间:2019-05-30 10:38:13

标签: java android

我正在尝试捕获并打印用户按下的键(如果用户按住该键,我只想打印一次)。为此,我检查了Android文档(https://developer.android.com/reference/android/view/KeyEvent),发现方法getRepeatCount应该在第一次按下该键时返回0,然后返回一个非零值。问题在于它总是返回0。

我创建了一个新的Android项目(在Intellij IDEA上),并且活动为空,然后实现了onKeyDown方法,如下所示:

package com.soft.uret.testonkeydown;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.i("key pressed", event.getKeyCode() + " - " + event.getRepeatCount());
        return super.onKeyDown(keyCode, event);
    }
}

当我按住物理键盘上的一个键时,我会得到:

I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0
I/key pressed: 31 - 0

您可以看到getRepeatCount()始终返回0,为什么呢?我想念什么?

0 个答案:

没有答案