更改SeekBarPreference中的最大值

时间:2014-10-31 23:11:29

标签: android xml max preferencescreen seekbarpreference

我无法更改标准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的情况下更改最大值?

1 个答案:

答案 0 :(得分:0)

无论出于何种原因,隐藏SeekBarPreference类。 Source code表明有SeekBarPreference.setMax(int)方法可用,因此可以使用反射来实现,但对于手头的任务来说似乎有些过分。

我建议您使用预设数量的步骤(例如10,如布局所示),然后使用maxVolume * seekBarValue / seekBarStepCount计算请求的音量值,因为这似乎是一种更安全的解决方案。