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

問題は、ボリュームバーをビューの垂直シークバーとして表す popupwindow があることです。popupwindow が表示されているとき、アクティビティの onKeyDown は、popupwindow を閉じるまで呼び出されません。

この問題を解決する方法はありますか? 音量ボタンのクリックを検出する別の方法はありますか? 助けてくれてどうもありがとう

4

2 に答える 2

4

PopupWindow クラスに focusable false を設定してみてください。

mMyPopupWindow.setFocusable(false);
于 2014-04-07T14:20:29.440 に答える