当popupwindow可见时,尚未调用onKeyDown

时间:2013-09-12 09:28:44

标签: android popupwindow onkeydown

我正在使用以下功能(在活动中)来检测音量按钮点击次数:

    @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);
}

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

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

2 个答案:

答案 0 :(得分:3)

尝试为PopupWindow类设置focusable false。

mMyPopupWindow.setFocusable(false);

答案 1 :(得分:0)

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

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