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 回答