2012-01-06 4 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, если сам диалог не будет изменен.

Смежные вопросы