Android 从自定义SeekBarPreference获取值
我在网上找到了这段代码,我想试试看。我把它放在我的首选项中,这是我想要的方式,但我唯一的问题是我无法得到SeekBar的值 以下是我在首选项中使用的代码链接: 下面是首选项xml的一部分: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"
<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;
}
});