我不能在标准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来更改最大值的方法?
发布于 2014-10-31 23:23:09
无论出于什么原因,SeekBarPreference类都是隐藏的。源代码显示,存在一个可用的SeekBarPreference.setMax(int)方法,因此可以使用反射来达到这个目的,但是对于手头的任务来说,这似乎太过了。
我建议您使用预先设定的步骤数(如布局建议的10步),然后使用maxVolume * seekBarValue / seekBarStepCount计算请求的卷值,因为这似乎是一种更安全的解决方案。
https://stackoverflow.com/questions/26684707
复制相似问题