2012-01-06 98 views
0

我试图控制媒体音量DialogPreference中的媒体音量控制器

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

代码:

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

回答

0

我不能完全确定你想在这里做什么。你有所有重要的部分,volumebar.setMax(),volumebar.setProgress()OnSeekBarChangeListener,但是你打算把它放在整个对话框的变化监听器中吗?这个监听器将会返回false,除非对话本身被改变。