【问题标题】:Override enter and space keys on Chromeos覆盖 Chromeos 上的 enter 和 space 键
【发布时间】:2021-03-24 15:46:22
【问题描述】:

首先,这不是一个重复的问题:How to override Android keyboard

我的问题和上面的有点不同。

我正在我的应用程序的后台播放音乐,如果用户在任何片段或活动(我只有 1 个活动)上按下 EnterSpace 键,我想播放/暂停它带有 @ 987654324@。我已经实现了这个,它工作得很好。但是有一个问题:当用户专注于一个按钮(例如:打开 X 片段)时,SpaceEnter 键会触发按钮的单击事件。所以我想覆盖它。

这是我尝试过的:


主要活动

public class MainActivity extends AppCompatActivity {
 ....
   @Override
   public boolean onKeyUp(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_SPACE || keyCode == KeyEvent.KEYCODE_ENTER) {
         BackingTrackFragment.newInstance().onKeyUp(keyCode, event);
         return true;
     }
      return super.onKeyUp(keyCode, event);
   }
}

我的片段

public class SomeFragment extends BaseFragment implements KeyboardKeyEventListener {
    ...
 @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        // play/pause the song
        return true;
    }
}

界面


public interface KeyboardKeyEventListener {
    boolean onKeyUp(int keyCode, KeyEvent event);
}

【问题讨论】:

    标签: android google-chrome-os


    【解决方案1】:

    重载dispatchKeyEvent 解决了这个问题。它将阻止任何和所有关键事件。

    主要活动

     @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.KEYCODE_SPACE) {
                if (event.getAction() == KeyEvent.ACTION_UP) {
                    SomeFragment.newInstance().dispatchKeyEvent(event);
                    return false;
                }
            }
            return super.dispatchKeyEvent(event);
        }
    

    我的片段

    public class SomeFragment extends BaseFragment implements KeyboardKeyEventListener {
        ...
     @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            // play/pause the song
            return true;
        }
    }
    

    重载接口

    public interface KeyboardKeyEventListener {
        boolean dispatchKeyEvent(KeyEvent event);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多