1

我正在使用以下函数(在Activity中)来检测音量按钮的点击:

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        if(mAudioManager != null){
            int curVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
            Intent intent = new Intent();
            intent.setAction(VerticalSeekBar.ACTION_VOLUME_CHANGED);
            intent.putExtra(VerticalSeekBar.ARGUMENT_VOLUME_VALUE,curVolume);
            sendBroadcast(intent);
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

事情是我有弹出窗口,它在它的视图中将音量条表示为垂直搜索条。当弹出窗口显示时,我的活动中的 onKeyDown 不会被调用,直到我关闭弹出窗口。

任何建议如何解决这个问题?还有另一种检测音量按钮点击的方法吗?非常感谢您的帮助

4

2 回答 2

4

尝试为您的 PopupWindow 类设置 focusable false 。

mMyPopupWindow.setFocusable(false);
于 2014-04-07T14:20:29.440 回答
0

不确定您实际上是如何使用该弹出窗口的,但如果您使用对话框,则可以访问 onKeyDown(); 对于对话框。

http://developer.android.com/reference/android/app/Dialog.html#onKeyDown%28int,%20android.view.KeyEvent%29

于 2013-09-12T09:35:34.127 回答