从自定义SeekBarPreference获取价值

时间:2012-09-01 20:01:29

标签: android seekbar preference

我在互联网上找到了这个代码,我想我会试一试。我把它放在我的偏好中,这是我想要它的方式,但我唯一的问题是我无法获得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"
        />

任何人都可以告诉我在用户在偏好设置窗口中更改后如何获取搜索栏的价值吗?

2 个答案:

答案 0 :(得分: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;
    }
});

答案 1 :(得分:1)

应该像任何其他偏好一样。

在您的活动中实施SharedPreferences.OnSharedPreferenceChangeListener,然后:

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

-

public void onSharedPreferenceChanged( SharedPreferences prefs, String key ) {
    mZoomValue = prefs.getInt( "zoom", 50 );
}