【问题标题】:Changing max value in SeekBarPreference更改 SeekBarPreference 中的最大值
【发布时间】:2014-10-31 23:11:28
【问题描述】:

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

【问题讨论】:

    标签: android xml max preferencescreen seekbarpreference


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多