DialogPreference中的Media Volume控制器

时间:2012-01-06 05:21:59

标签: android media dialog-preference

我正在尝试控制媒体量

但关闭对话框后,它总是自动设置为零。

代码:

         DialogPreference dp = (DialogPreference)findPreference("mediavolume");
         dp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

             public boolean onPreferenceChange(Preference preference, Object newValue) {
             SeekBar volumeBar = (SeekBar)findViewById(R.id.seekbar);
             final AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);  


             volumeBar.setMax(manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
             volumeBar.setProgress( manager.getStreamVolume(AudioManager.STREAM_MUSIC));

             volumeBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

                public void onStopTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub

                }

                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub

                }

                public void onProgressChanged(SeekBar seekBar, int progress,
                        boolean fromUser) {
                     manager.setStreamVolume(AudioManager.STREAM_MUSIC, progress,manager.FLAG_PLAY_SOUND);


                }
            });

                return false;
            }
        });

1 个答案:

答案 0 :(得分:0)

我不完全确定你在这里要做什么。您拥有所有重要部分volumebar.setMax()volumebar.setProgress()OnSeekBarChangeListener,但是您是否打算将其置于整个对话框的更改侦听器中?除非对话框本身已更改,否则此侦听器将返回false。