从定制SeekBarPreference获得价值(Getting value from custom

2019-09-22 01:29发布

我在互联网上找到这段代码,我想我会试试看。 我把它放在我的喜好,这是exaclt我想这是我的,但唯一的问题是,我不能让搜索栏的价值的方式。

下面是代码的链接,我用我的偏好:

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"
        />

谁能告诉我如何用户在选项窗口更改后它获得搜索条价值?

Answer 1:

你可以使用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;
    }
});


Answer 2:

应该就像任何其他的偏好。

实施SharedPreferences.OnSharedPreferenceChangeListener在你的活动,那么:

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

-

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


文章来源: Getting value from custom SeekBarPreference