标签: seekbarpreference

使用SeekBarPreference

与SeekBarPreference有什么关系?让我扩大......

如果我在我的PreferenceScreen xml中放置一个SeekBarPreference,它可以正常工作(我可以在手机和模拟器上运行它),但是Android Studio报告在这里不允许使用Element SeekBarPreference.简单的XML显示了这一点:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<SeekBarPreference
    android:key="fontSize"
    android:title="@string/fontSize_title"
    android:summary="@string/fontSize_summary"
    android:max="12"
    android:defaultValue="4" />

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

如果我尝试扩展SeekBarPreference(这是我真正想做的事情),Android Studio Cannot resolve symbol SeekBarPreference既可以使用import也可以使用extends.简单的Java文件来显示这个:

import android.preference.SeekBarPreference;

public class FontSizePreference extends SeekBarPreference {}
Run Code Online (Sandbox Code Playgroud)

(如果我只是SeekBarPreference sbp;在代码中使用也会发生.)

SeekBarPreference的源代码/Sdk/sources/android-22/android/preference就像EditTextPreference一样.我没有看到任何特别之处.

但是,我在developer.android.com上找不到任何关于它的文档.

我错过了哪些信息?与EditTextPreference相比,有什么特别之处,我可以将其包含在XML中并在代码中扩展和使用而不会出现问题?

android seekbarpreference

8
推荐指数
1
解决办法
1518
查看次数

自定义内联SeekBarPreference-如何在第一次运行时设置SeekBar进度?

我在GitHub上为我的问题准备了一个简单的测试项目

在我的项目中,有一个自定义的内联 SeekBarPreference,大多数情况下都可以正常工作(在拖动seekbar时,其摘要会更新,并保存整数值):

应用截图

但是有一个问题:

在应用程序的第一次运行中(尝试再次看到该错误时,您可能需要卸载我的应用程序)的进度SeekBar未设置(但设置了摘要):

应用截图

我的问题是:如何在我的代码中解决此问题?

我曾尝试在不同的地方加入mSeekBar.setProgress(mProgress)SeekBarPreference.java,但就是无法找到该代码的正确位置。

以下是我的源代码摘录(以防Stackoverflow超过GitHub)-

MainActivity.java

PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

getFragmentManager().beginTransaction()
    .addToBackStack(null)
    .replace(R.id.root, new PrefFragment(), "prefs")
    .commit();
Run Code Online (Sandbox Code Playgroud)

PrefFragment.java

@Override
public void onResume() {
    super.onResume();

    SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
    // set the summaries from saved values
    onSharedPreferenceChanged(prefs, SEEK_1);
    onSharedPreferenceChanged(prefs, SEEK_2);
    prefs.registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {

    if (SEEK_1.equals(key)) {
        int i1 = prefs.getInt(key, DEFAULT_1);
        mSeek1.setSummary("$ " + i1);
    } else if (SEEK_2.equals(key)) { …
Run Code Online (Sandbox Code Playgroud)

android seekbar android-preferences seekbarpreference android-seekbar

5
推荐指数
1
解决办法
2708
查看次数

带有离散值的SeekBarPreference()

我只想在我的项目中包含仅3个值的SeekBarPreference(紧急级别:低-中-高)

这可以在经典的SeekBar上轻松完成(请参见下面的示例),但是我不知道如何包含Preference。

如果我使用此代码,它将在SeekBar(不是首选项)中运行,但在“首选项”中,它仍将显示没有粗线标记的SeekBar。

码:

<SeekBar
     android:id="@+id/sb"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:max="10"
     android:thumb="@drawable/ic_location"
     android:theme="@style/Widget.AppCompat.SeekBar.Discrete" />
Run Code Online (Sandbox Code Playgroud)

有什么想法或建议吗?

在此处输入图片说明

android android-preferences seekbarpreference

5
推荐指数
1
解决办法
1436
查看次数