2

インターネットでこのコードを見つけたので、試してみようと思いました。私はそれを自分の好みに入れましたが、それは私が望んでいた通りでしたが、私の唯一の問題は、SeekBar の値を取得できないことです。

私の好みで使用しているコードへのリンクは次のとおりです。

http://android.hlidskialf.com/blog/code/android-seekbar-preference

ここに設定xmlの一部があります:

<com.mypack.SeekBarPreference android:key="zoom"
        android:title="Zoom"
        android:summary=""
        android:dialogMessage="Zoom level"
        android:defaultValue="50"
        android:text=" %"
        android:max="100"
        />

ユーザーが設定ウィンドウでシークバーを変更した後にシークバーの値を取得する方法を教えてもらえますか?

4

2 に答える 2

3

setOnPreferenceChangeListener()を使用できます :

SeekBarPreference mSeekBarPreference = new SeekBarPreference(this, null);
mSeekBarPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        // TODO Auto-generated method stub
        int value = mSeekBarPreference.getProgress();
        // Or you just cast the newValue Object
        return true;
    }
});
于 2012-09-01T20:18:18.580 に答える
1

他の設定と同じようにする必要があります。

SharedPreferences.OnSharedPreferenceChangeListenerあなたの活動に実装してから:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( YourActivity.this );
prefs.registerOnSharedPreferenceChangeListener( this );

-

public void onSharedPreferenceChanged( SharedPreferences prefs, String key ) {
    mZoomValue = prefs.getInt( "zoom", 50 );
}
于 2012-09-01T20:12:25.553 に答える