我正在尝试控制媒体量
但关闭对话框后,它总是自动设置为零。
代码:
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 :(得分:0)
我不完全确定你在这里要做什么。您拥有所有重要部分volumebar.setMax()
,volumebar.setProgress()
和OnSeekBarChangeListener
,但是您是否打算将其置于整个对话框的更改侦听器中?除非对话框本身已更改,否则此侦听器将返回false。