Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中将应用程序首选项读取为整数_Android_Android Preferences - Fatal编程技术网

在Android中将应用程序首选项读取为整数

在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

我正在开发一个示例应用程序,其中我有如下“ListPreference”:


我将其绑定到整数数组,如下所示:

同步频率
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
,它可以处理整数值