Android 从自定义SeekBarPreference获取值

Android 从自定义SeekBarPreference获取值,android,seekbar,preference,Android,Seekbar,Preference,我在网上找到了这段代码,我想试试看。我把它放在我的首选项中,这是我想要的方式,但我唯一的问题是我无法得到SeekBar的值 以下是我在首选项中使用的代码链接: 下面是首选项xml的一部分: <com.mypack.SeekBarPreference android:key="zoom" android:title="Zoom" android:summary="" android:dialogMessage="Zoom level"

我在网上找到了这段代码,我想试试看。我把它放在我的首选项中,这是我想要的方式,但我唯一的问题是我无法得到SeekBar的值

以下是我在首选项中使用的代码链接:

下面是首选项xml的一部分:

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


有谁能告诉我在用户在“首选项”窗口中更改seekbar后如何获取它的值吗?

应该和其他首选项一样

在活动中实现
SharedReferences.OnSharedPreferenceChangeListener
,然后:

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


应该和其他偏好一样

在活动中实现
SharedReferences.OnSharedPreferenceChangeListener
,然后:

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

您可以使用:

您可以使用:



这个SeekBar有三个可能的值?您是如何将其包含在您的首选项中的?给我们看代码?编辑过的帖子,看看你能得到其他的偏好值吗?你已经有工作代码了?这是我在首选项列表中唯一的首选项这个SeekBar有三个可能的值?你是如何在首选项中包含它的?给我们看代码?编辑过的帖子,看看你能得到其他的偏好值吗?您已经有了可以执行此操作的代码?这是我在首选项列表中唯一的首选项。您是否初始化了
mSeekBarPreference
?是的,通过将SeekBarPreference放入mSeekBarPreference@RohitMalish这是定义而不是初始化!请参阅更新。我给
AttributeSet
设置了
null
。检查你的SekBar首选项构造函数。如果我的初始化无效,那么你应该考虑一下。我不熟悉这种偏好。看看它的父级DialogPreference的代码。我想我必须继续搜索更简单的方法来实现这一点,谢谢你的帮助。你是否初始化了
mSeekBarPreference
?是的,通过放置SeekBarPreference@RohitMalish这是定义而不是初始化!请参阅更新。我给
AttributeSet
设置了
null
。检查你的SekBar首选项构造函数。如果我的初始化无效,那么你应该考虑一下。我不熟悉这种偏好。看看它的父级DialogPreference的代码。我想我必须继续搜索更简单的方法来完成这项工作,谢谢你的帮助
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;
    }
});