2014-10-31 57 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> 

我想搜索條的數值爲:

int maxVolume = AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 

我試圖更改PreferenceActivity的價值,但我不知道。 我卡在:

首選seekBar = findPreference(「seekBarVolume」);

有沒有辦法改變最大值而不使用自定義seekBarPreference?

回答

0

SeekBarPreference類由於某種原因被隱藏。 Source code顯示有一個SeekBarPreference.setMax(int)方法可用,因此可以使用反射來達到此目的,但對於手頭的任務看起來過度。

我建議您改爲使用預設數量的步驟(例如10,如您的佈局所示),然後使用maxVolume * seekBarValue/seekBarStepCount來計算所需的音量值,因爲這看起來像是一個更安全的解決方案。

相關問題