2014-10-31 2 views
0

Я не могу изменить максимальное значение в стандартном 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?

ответ

0

Класс SeekBarPreference скрыт по любой причине. Source code показывает, что существует доступный метод SeekBarPreference.setMax(int), поэтому можно использовать отражение, чтобы достичь этого, но, похоже, это слишком сложно для задачи.

Я предлагаю вам вместо этого использовать предустановленное количество шагов (например, 10, как предлагает ваш макет), а затем рассчитать запрошенное значение объема с помощью maxVolume * seekBarValue/seekBarStepCount, поскольку это похоже на более безопасное решение.

Смежные вопросы