KeyEvent getRepeatCount()始终返回0 [英] KeyEvent getRepeatCount() always return 0

查看:389
本文介绍了KeyEvent getRepeatCount()始终返回0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用远程Android TV 要在使用时捕获事件,请按远程按钮,我使用以下代码:

I'm working with remote android TV To catch event when use press remote button I use this code:

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.

I see that when I press 1 button on remote, getRepeateCount() always return 0. I think if i pressed duplicate it should be greater 0.

这是怎么了?

推荐答案

当您按下一个键,释放它,然后再次按下它时,您将收到两个ACTION_DOWN事件,而getRepeatCount()都将返回0 .要查看非零的getRepeatCount()值,您必须按住键 足够长的时间,以便它开始重复.

When you press a key, release it, and then press it again, you will receive two ACTION_DOWN events, and getRepeatCount() will return 0 for both. To see a non-zero getRepeatCount() value, you have to hold down the key long enough that it starts repeating.

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

You can think about it like this. If I type "aaaaaaaaaa" into this text field by pressing and releasing my keyboard's A key 10 times, I'll get 10 events, each with a repeat count of zero. But if I hold my A key down long enough that I start getting multiple "a"s, then I'll get 10 events, each with an increasing repeat count.

这篇关于KeyEvent getRepeatCount()始终返回0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆