0

標準の 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 を使用せずに最大値を変更する方法はありますか?

4

1 に答える 1

1

SeekBarPreference クラスは何らかの理由で隠されています。ソースコードは、利用可能なメソッドがあることを示しているSeekBarPreference.setMax(int)ため、リフレクションを使用してそれに到達できる可能性がありますが、目前のタスクにはやり過ぎのようです。

代わりに、事前設定されたステップ数 (レイアウトが示唆するように 10 など) を使用maxVolume * seekBarValue / seekBarStepCountし、より安全なソリューションのように思われるので、要求されたボリューム値を計算することをお勧めします。

于 2014-10-31T23:23:09.480 に答える