【问题标题】:KeyEvent getRepeatCount() always return 0KeyEvent getRepeatCount() 总是返回 0
【发布时间】:2023-03-05 13:52:01
【问题描述】:

我正在使用远程安卓电视 要在使用按下遥控按钮时捕捉事件,我使用以下代码:

public boolean dispatchKeyEvent(KeyEvent event) {
        Log.d("LOG", "Number repeate count = " + event.getRepeatCount());
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (event.getKeyCode()) {
                case KeyEvent.KEYCODE_1:
                    exoPlayerManager.showControllerView();
                    if (event.getRepeatCount() > 0) {
                        if (videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed >= 64) {
                            ((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setVisibility(View.GONE);
                            videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(1, 1.0f));
                        } else {
                            videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(2 * videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed, 1.0f));
                        }
                        ((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setText(videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed + "X");
                    }else  if (videoPlayerView.getPlaybackControlView() != null) {
                        return videoPlayerView.getPlaybackControlView().dispatchKeyEvent(event);
                    }
                    break;

我看到当我按下遥控器上的 1 按钮时,getRepeateCount() 总是返回 0。 我想如果我按下重复它应该大于 0。

这里有什么问题?

【问题讨论】:

    标签: android keyevent android-tv


    【解决方案1】:

    当你按下一个键,释放它,然后再次按下它,你会收到两个ACTION_DOWN 事件,getRepeatCount() 会为这两个事件返回 0。要查看非零的 getRepeatCount() 值,您必须按住该键足够长的时间以使其开始重复。

    你可以这样想。如果我通过按下并释放键盘的 A 键 10 次在此文本字段中键入“aaaaaaaaaa”,我将获得 10 个事件,每个事件的重复计数为零。但是,如果我按住 A 键的时间足够长,以至于我开始收到多个“a”,那么我将收到 10 个事件,每个事件的重复次数都在增加。

    【讨论】:

    • 嗨@Ben P,我多次按数字1,长按、双击、长按……但getRepeatCount() 仍然为0
    • @phongvan 此行为不适用于所有按键,请尝试按返回按钮查看
    猜你喜欢
    • 2013-01-20
    • 2015-09-27
    • 2014-03-20
    • 2013-04-13
    • 2013-03-30
    • 2016-07-13
    • 2023-04-09
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多