在Android中将应用程序首选项读取为整数
我正在开发一个示例应用程序,其中我有如下“ListPreference”:在Android中将应用程序首选项读取为整数,android,android-preferences,Android,Android Preferences,我正在开发一个示例应用程序,其中我有如下“ListPreference”: 我将其绑定到整数数组,如下所示: 同步频率 15分钟 30分钟 1小时 3小时 6小时 12小时 24小时 从未 15 30 60 180 360 720 1440 -1 据我所知,首选项的持久性是由PreferenceFragment提供的,我从中扩展了我拥有ListPreference的片段。除了在Android Studio中创建设置活动时提供的代码外,我没有其他代码: 公共静态类DataSyncPrefer
我将其绑定到整数数组,如下所示:
同步频率
15分钟
30分钟
1小时
3小时
6小时
12小时
24小时
从未
15
30
60
180
360
720
1440
-1
据我所知,首选项的持久性是由PreferenceFragment提供的,我从中扩展了我拥有ListPreference的片段。除了在Android Studio中创建设置活动时提供的代码外,我没有其他代码:
公共静态类DataSyncPreferenceFragment扩展了PreferenceFragment
现在的问题是,当我尝试读取首选项时,我希望将其作为整数读取,如下所示:
SharedReferences SharedReferences=PreferenceManager.GetDefaultSharedReferences(上下文);
返回sharedPref.getInt(“同步频率”,0);
但是我得到了这个异常:java.lang.ClassCastException:java.lang.String不能转换为java.lang.Integer
我可以将首选项读取为sting,然后转换为int,但我希望首选项已经存储为整数,因为我将它绑定到一个整数数组。为什么要将其存储为字符串,并且可以将其存储为整数?如果手动存储,则可以按照您想要的方式进行存储。但是如果使用ListPreference,它将存储为字符串。您必须将其解析回integerYes,我想看看是否可以“开箱即用”地完成。由于它现在已经实现,我想说您不能。但是,您实际上可以实现自己的
ListPreference
,它可以处理整数值