2012-01-06 1 views
0

미디어 볼륨을 제어하려고합니다.DialogPreference의 미디어 볼륨 컨트롤러

대화 상자를 닫은 후에도 항상 자동으로 0으로 설정됩니다.

코드 :

  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를 반환합니다.