问题标签 [listpreference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5785 浏览

android - Android listpreference - 获取值

我有一个listpreference. 这里的代码不管怎么复制,都显得不对,所以就复制一下吧:

preferences.xml在 listpreference 部分中有这段代码:

这是我要获取所选项目的代码:

问题是,它返回的不是项目的值。所以如果我选择梅赛德斯,我得到的值是“car1”。

我怎样才能得到“梅赛德斯”?

0 投票
1 回答
2731 浏览

android - ListPreference - 可以自定义项目吗?

我正在尝试将图像/图标添加到文本旁边的 ListPreference 的某些条目中。

我想以编程方式实现这一目标

这是preferences.xml的摘录

此处的目标是说明列出的某些选项在当前版本的应用程序中不可用/锁定。但是,代码库用作库,所以我希望解决方案通过代码而不是 xml 工作。

任何想法如何做到这一点?谢谢。

0 投票
7 回答
7193 浏览

android - 在自定义 Preference 类上调用 setDefaultValue() 不会设置默认值。为什么?

我正在扩展PreferenceActivity我的设置屏幕。在这个偏好活动中,我有几个偏好,其中一个是定制的。问题如下:

在这个自定义首选项(从 扩展ListPreference)中,我希望能够设置默认值,所以我覆盖了该setDefaultValue()方法。在这种方法中,我做了一些解析,所以它会采用正确的值。当我试图用getValue()它返回的函数读取这个值时null

所以我想,当我把一些硬编码的值放在那里时会发生什么(你知道,也许我做错了什么,这不是第一次)。好吧,我还是null回来了。

任何想法我做错了什么?

编辑:
在 xml 文件中设置 defaultValue 并不是一个真正的选项,因为在我检索它们之前这些值是未知的。

我做了一个解决方法:

  • 首次启动应用时:获取数据
  • 在首选项中设置值。

这样我在收集数据时设置默认首选项

0 投票
1 回答
371 浏览

java - 将 JSON 数组(来自 API)添加到 android SDK 上的 listpreference

我需要将从 json api(也可以使用 xml)获得的列表放入 listpreference
中,任何人都可以尽可能地解释我该怎么做吗?
api的示例输出:

我已经得到它的代码:

所以我需要的是将 JSonarray 转换为 listpreference 的正确格式以及将此函数添加到数组的方法。

请尽快帮助我

提前致谢

ps:条目和条目值都应该是我在这里得到的数组,所以不需要映射或任何东西

0 投票
1 回答
746 浏览

android - 选择 ListPreference 对话框时,状态栏不恰当地出现

试试这个:

1)将您的清单设置为使用全屏主题(从而隐藏状态栏)

2) 创建一组嵌套的首选项活动,并让最里面的活动打开一个 ListPreference 对话框。

您会发现打开此对话框会导致状态栏短暂重新出现,如果您更改设备方向,它将永久重新出现。

这是一个合法的Android错误吗?有没有办法覆盖 ListPreference 本身使用的主题?(相关?

0 投票
11 回答
52806 浏览

java - 如何设置 ListPreference 的默认值

我需要在 Activity 启动时为 ListPreference 设置默认值。我已经尝试过,ListPreference.setDefaultvalue("value");但它使列表的第一个条目成为默认值。我需要它,因为我必须检查一个条件并将满足该条件的值设置为默认值,所以我认为它不能从 xml 文件中完成(使用android:defaultValue

例如,假设我在 arrays.xml 中有这个值数组:

在 PreferenceScreen xml 中:

在活动中,我想做这样的事情:

但它不起作用,因为它将第一选择设为默认值。你能解释一下如何将另一个设为默认值吗?谢谢。

0 投票
1 回答
1606 浏览

android - 在 PreferenceScreen 中检索 ListPreference

如何在 PreferenceScreen 中检索 ListPreference?

我尝试过以下方法,它们都抛出空异常。

findPreference(key) getPreferenceScreen().findPreference(key)

}

03-15 17:50:42.250: ERROR/AndroidRuntime(441): FATAL EXCEPTION: main 03-15 17:50:42.250: ERROR/AndroidRuntime(441): java.lang.RuntimeException: Unable to start activity ComponentInfo{com. feral.widget/com.feral.widget.Prefs}:java.lang.NullPointerException 03-15 17:50:42.250:错误/AndroidRuntime(441):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)03 -15 17:50:42.250: 错误/AndroidRuntime(441): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 03-15 17:50:42.250: 错误/AndroidRuntime(441): 在 android.app .ActivityThread.access$1500(ActivityThread.java:117) 03-15 17:50:42.250: 错误/AndroidRuntime(441): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 03-15 17: 50:42.250:错误/AndroidRuntime(441):在 android.os.Handler。dispatchMessage(Handler.java:99) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.os.Looper.loop(Looper.java:123) 03-15 17:50:42.250: ERROR/ AndroidRuntime(441): 在 android.app.ActivityThread.main(ActivityThread.java:3647) 03-15 17:50:42.250: 错误/AndroidRuntime(441): 在 java.lang.reflect.Method.invokeNative(Native Method) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at java.lang.reflect.Method.invoke(Method.java:507) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at dalvik.system.NativeStart.main(Native Method) 03-15 17:50:42.250: ERROR/AndroidRuntime(441):引起:java.lang.NullPointerException 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at com.feral.widget.Prefs.loadLayout(Prefs.java:234) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at com.feral.widget.Prefs.loadPreference(Prefs.java:267) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at com.feral.widget.Prefs.onCreate (Prefs.java:77) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-15 17:50:42.250: ERROR/AndroidRuntime (441): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)loadPreference(Prefs.java:267) 03-15 17:50:42.250: 错误/AndroidRuntime(441): at com.feral.widget.Prefs.onCreate(Prefs.java:77) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java :1586)loadPreference(Prefs.java:267) 03-15 17:50:42.250: 错误/AndroidRuntime(441): at com.feral.widget.Prefs.onCreate(Prefs.java:77) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-15 17:50:42.250: ERROR/AndroidRuntime(441): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java :1586)

0 投票
2 回答
1194 浏览

android - Android:使用已安装的应用程序填充 ListPreference?

我对 android 开发有点陌生,这是我第一次尝试在首选项屏幕中提供已安装应用程序的列表。从此列表中选择的值稍后将用于启动用户选择的应用程序。

我创建了以下类:

这将使用以下 XML 添加到我的 PreferenceScreen 中:

看起来一切正常,直到单击 AppSelectorPreference,这会在 android.preference.ListPreference.findIndexOfValue(ListPreference.java:169) 中引发 NPE。有什么建议么?

0 投票
1 回答
441 浏览

android - 自定义 listPreference 中的双行

使用此处的代码遇到问题。当手机为横向时,并非所有列表项都可见(假设我只看到 5 个中的 3 个)。当我向下滚动到第 4 个和第 5 个元素时,我再次看到两个第一个元素(即 1、2、3、1、1)。在一些滚动动作之后,我得到了更有趣的组合(如 2、3、1、2、1)等等。

代码与链接中的一样,我更改的所有内容都没有解决问题。怎么了?

提前致谢

2Rajath 感谢您提供的简单示例,但我无法将其应用于我的案例。请看一看

创建 CustomHolder 对象时,它会在 setId() 方法处引发 NullPointer 异常

你能解释一下如何使这段代码工作吗?

0 投票
2 回答
5594 浏览

android - checkboxpreference android或listpreference的依赖中的多重依赖

例如:我的首选项屏幕中有三个复选框,listpreference(A,B,C)每个复选框有 3 个不同的复选框。我想让用户一次只选择一个复选框。我如何实现这一目标?

  1. 首选项屏幕中没有单选按钮

  2. 我不能使用 Listpreference ,如果我可以使用它

此 Listprefrence 的数组是“blue”、“red”、“white”

如果是蓝色 ListPreference A 取决于蓝色

如果是红色 ListPreference B 取决于红色

如果是白色 ListPreference C 取决于白色

我怎样才能做到这一点?

我在谷歌搜索了 3-4 页,这里几乎所有关于这些的内容,但我找不到任何答案。

最好的祝福,

提前致谢..