java-如何设置ListPreferen的默认值

我需要在活动开始时为ListPreference设置默认值。我尝试使用ListPreference.setDefaultvalue("value");,但是它使列表的firts条目成为默认条目。 我需要它,因为我必须检查一个条件并将满足该条件的值设置为默认值,因此我认为无法从xml文件(使用android:defaultValue)中完成

例如,假设我在arrays.xml中具有以下值数组:

red

green

blue

1

2

3

在PreferenceScreen xml中:

android:title="Colour select"

android:summary="Select your favourite"

android:key="colour"

android:entries="@array/opts"

android:entryValues="@array/opts_values" />

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

String mycolour;

if (something) {

mycolour="1";

} else {

mycolour="2";

}

ListPreference colour = (ListPreference) findPreference ("colour");

colour.setDefaultValue(mycolour);

但这是行不通的,因为它将默认设置为第一选择。 您能解释一下如何将另一个设为默认值吗? 谢谢。

10个解决方案

97 votes

您不需要以编程方式处理2726803835835279901696的默认值。您可以在xml设置文件中执行此操作。 下面是一个例子

red

green

blue

1

2

3

android:title="Colour select"

android:summary="Select your favourite"

android:key="colour"

android:entries="@array/opts"

android:entryValues="@array/opts_values"

android:defaultValue="2" />

在这里我选择2作为默认值。 记住defaultvalue将是opts_values元素。

Md. Naushad Alam answered 2020-01-31T10:51:23Z

27 votes

你有没有尝试过:

setValueIndex(int index);

biddulph.r answered 2020-01-31T10:50:59Z

8 votes

对不起,我的英语不好。

项目清单

检索列表检查值是否为null。 如果为null,则设置为默认值。

码:

ListPreference dataPref = (ListPreference) findPreference("keyList");

if(dataPref.getValue() == null){

dataPref.setValueIndex(0); //set to index of your deafult value

}

Leandro P. answered 2020-01-31T10:51:57Z

3 votes

或者您也可以尝试colour.setValue(mycolour);

ungalcrys answered 2020-01-31T10:52:18Z

3 votes

仅供记录,如果其他人有此问题:

setValueIndex(int X)会将@ index X的值设置为默认值-可能正是您要寻找的。

添加值后设置此值! (愚蠢的错误,但花了我半个小时)

Langusten Gustel answered 2020-01-31T10:52:48Z

3 votes

((ListPreference) findPreference("pref_language")).setValue(Locale

.getDefault().getLanguage());

setValue()是ListPreference的方法,而setDefaultvalue是Preference的方法

laomo answered 2020-01-31T10:53:08Z

1 votes

实际上,这是因为在重新构建应用程序后,SharedPreferences将保留。卸载它,然后重试。

Yijun Li answered 2020-01-31T10:53:28Z

1 votes

这是旧文章,但这是使用以下代码行设置ListPreference默认值的另一种方法:

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

wooldridgetm answered 2020-01-31T10:53:50Z

1 votes

您可以使用如下键设置默认值

Block All Calls

Block Black List

Block Unknown Calls

Allow White List

Receive All Calls

Block_All_Calls

Block_Black_List

Block_Unknown_Calls

Allow_White_List

Receive_All_Calls

android:key="prefSyncFrequency"

android:entries="@array/syncFrequency"

android:summary="%s"

android:defaultValue="Block_Black_List"

android:entryValues="@array/syncFrequencyValues"

android:title="@string/call_block_options" />

pavel answered 2020-01-31T10:54:09Z

0 votes

在列表标记中使用xml属性设置默认值。

注意:是实际值,而不是字符串的索引   数组。

如果仍然无法正常工作,请尝试以下步骤。

清除应用程序数据。

卸载并重新安装该应用程序

检查列表首选项,您将看到选择的默认值

奇怪,我知道,但是对我来说有效。

Vivek answered 2020-01-31T10:54:56Z

java 设置默认list_java-如何设置ListPreferen的默认值相关推荐

  1. eclipse 默认jdk 的设置 eclipse.ini -vm 参数

    2019独角兽企业重金招聘Python工程师标准>>> eclipse 的配置文件 eclipse.ini 不仅仅可以设置eclipse的堆栈内存大小,也可设置默认使用的jdk版本. ...

  2. springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池

    在实际的应用开发中,与数据库交互通常使用数据库连接池来重用Connection对象,减少资源消耗. Spring Boot 的数据源是自动配置的.在 Spring Boot 2.2.1 版本中,有几种 ...

  3. java 设置系统参数_Java如何设置系统参数和运行参数

    系统参数 系统级全局变量,该参数在程序中任何位置都可以访问到.优先级最高,覆盖程序中同名配置. 系统参数的标准格式为:-Dargname=argvalue,多个参数之间用空格隔开,如果参数值中间有空格 ...

  4. java堆内存设置_java堆内存设置原理

    堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...

  5. Android 7.1.2 默认输入法的设置流程分析与修改

    一.默认输入法的设置流程分析 设置流程分析 1.  Android系统开机后,当ActivityManagerService及PackageManagerService都ready后,systemse ...

  6. java线程池的参数设置

    java线程池的参数设置 在说如何对线程池优化之前重复一下线程的7大参数 corePoolSize: 核心线程数,也是线程池中常驻的线程数,线程池初始化时默认是没有线程的,当任务来临时才开始创建线程去 ...

  7. java preferences设置_Java利用Preferences设置个人偏好

    Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...

  8. mysql默认字符编码设置教程:my.ini设置字符编码

    转载2016-06-07 21:49:26 标签:mysql 本文介绍了MySQL数据库中默认字符编码的设置方法,如何设置与修改mysql默认编码,my.ini设置字符编码的教程,需要的朋友参考下. ...

  9. java获取session失效时间_Java设置session超时(失效)的时间

    在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session 具体设置的方法有三种: 1.在web容器中设置(以tomcat为例) 在 ...

最新文章

  1. Taro+react开发(38)注意请求接口的/
  2. 研发工程师如何转型项目经理
  3. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程
  4. 计算机系统设计 片上系统 pdf,一种基于过程级编程模型的可重构片上系统设计方法.pdf...
  5. java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...
  6. 如何将 Mac Dock 恢复到原始设置?
  7. PHP获取照片exif信息
  8. 在惠普BL460C G1上安装System Management Homepage(CentO...
  9. access数据库应用系统客观题_Access数据库程序设计模拟题
  10. ZigBee-CC2530单片机 - 按键控制LED
  11. linux挂载光盘镜像到mnt目录,CentOS系统中挂载光盘镜像ISO文件的教程
  12. 数字信号处理--语音信号变声报告
  13. 源哥每日一题第一弹 codeforces 913 C. Party Lemonade
  14. 根据IP地址获取地理位置
  15. 2021-10-09烧录固件芯片操作流程
  16. 在c语言中pwm的作用,详细注解的PWM c程序初学者适用
  17. 人工智能开源社区论坛----开源助力多领域AI生态发展| ChinaOSC
  18. Apache基于域名、端口、IP的虚拟主机配置(Centos 6.5)
  19. 【读书笔记】赞成功利主义的学习
  20. CF终于上紫了。。。

热门文章

  1. 学完css,做了一个csdn导航栏(一步一步做csdn导航栏,内容满满)
  2. 什么是项目?我们如何理解项目?
  3. Matlab中读取txt文件的几种方法
  4. FL Studio 导出没有声音的问题怎么办?
  5. 从源代码获取视频和封面图
  6. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java房屋租赁管理系统d97n3
  7. 【前端面试题】如何判断数据类型?
  8. hashcat 破解RAR密码操作使用记录
  9. 非抢占的高响应比优先调度算法
  10. 内存检测 - instrument介绍