我无法更改标准SeekBarPreference中的最大值。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/settings">
<SeekBarPreference
android:key="seekBarVolume"
android:max="10"
android:title="@string/seekbar_volume" />
</PreferenceCategory>
</PreferenceScreen>
我希望seekbar的值为:
int maxVolume = AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
我正在尝试更改PreferenceActivity中的值,但我不知道。 我坚持:
偏好seekBar = findPreference(“seekBarVolume”);
有没有办法在不使用自定义seekBarPreference的情况下更改最大值?
答案 0 :(得分:0)
无论出于何种原因,隐藏SeekBarPreference类。 Source code表明有SeekBarPreference.setMax(int)
方法可用,因此可以使用反射来实现,但对于手头的任务来说似乎有些过分。
我建议您使用预设数量的步骤(例如10,如布局所示),然后使用maxVolume * seekBarValue / seekBarStepCount
计算请求的音量值,因为这似乎是一种更安全的解决方案。