【问题标题】:Getting value from custom SeekBarPreference从自定义 SeekBarPreference 中获取价值
【发布时间】:2012-09-01 20:01:29
【问题描述】:

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

谁能告诉我在用户在首选项窗口中更改搜索栏后如何获取搜索栏的价值?

【问题讨论】:

  • 这个 SeekBar 有三个可能的值?
  • 你是如何将它包含在你的偏好中的?给我们看看代码?
  • 已编辑帖子,看看
  • 你能得到其他的偏好值吗?你已经有工作代码来做到这一点了吗?
  • 这是我在偏好列表中唯一的偏好

标签: android seekbar preference


【解决方案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;
    }
});

【讨论】:

  • 你初始化mSeekBarPreference了吗?
  • 是的,通过将 SeekBarPreference mSeekBarPreference;
  • @RohitMalish 这就是定义不初始化!查看更新。我把null 给了AttributeSet。检查您的 SeekBarPreference 构造函数。
  • @RohitMalish 如果我的初始化不起作用,那么是的,你应该考虑一下。我不熟悉这种偏好。看看它的父 DialogPreference 的代码。
  • 我想我得继续寻找更简单的方法来做到这一点,感谢您的帮助
【解决方案2】:

应该和其他偏好一样。

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

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

-

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

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多