sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

亚历克斯

我有一个preferences.xml包含以下定义:

<ListPreference
    android:title="@string/LimitSetting"
    android:summary="@string/LimitSettingText"
    android:key="limitSetting"
    android:defaultValue="10"
    android:entries="@array/limitArray"
    android:entryValues="@array/limitValues" />

值定义如下:

<string-array name="limitArray">
    <item>1 %</item>
    <item>3 %</item>
    <item>5 %</item>
    <item>10 %</item>
    <item>20 %</item>
</string-array>
<string-array name="limitValues">
    <item>1</item>
    <item>3</item>
    <item>5</item>
    <item>10</item>
    <item>20</item>
</string-array>

在活动中被调用如下:

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int offsetProgressInitial = sharedPref.getInt("limitSetting", 10);

到目前为止,一切都很好,但是当代码被实际调用时,我得到了这个错误:

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:239)
at com.test.app.NewEntryActivity.onCreate(NewEntryActivity.java:144)
at android.app.Activity.performCreate(Activity.java:5977)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365) 
at android.app.ActivityThread.access$800(ActivityThread.java:148) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 

这个错误对我来说没有任何意义。该列表仅包含可以转换为int的值,并且xml文件和代码中给出的默认值也仅表示一个数字。那么,为什么会出现此错误,以及如何解决呢?

乔治·穆里根(George Mulligan)

如果您查看getInt()内部的内容,将会发现问题:

Integer v = (Integer)mMap.get(key);

您的键“ limitSetting”返回一个String不能转换为整数的。

您可以自己解析它:

int offsetProgressInitial = Integer.parseInt(sharedPref.getString("limitSetting", "10"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

来自分类Dev

如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

来自分类Dev

如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

来自分类Dev

Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

来自分类Dev

java.lang.ClassCastException:无法将java.util.Arrays $ ArrayList强制转换为java.lang.Integer

来自分类Dev

Hibernate HQL强制转换java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Long

来自分类Dev

服务器响应“无法将java.lang.Integer强制转换为java.lang.Double”

来自分类Dev

java.lang.Integer无法转换为java.lang.String

来自分类Dev

SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

来自分类Dev

SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

来自分类Dev

JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

来自分类Dev

java.lang.ClassCastException:无法将java.lang.String强制转换为[C

来自分类Dev

java.lang.ClassCastException:无法将Z强制转换为java.lang.String

来自分类Dev

无法将解析java.lang.String强制转换为java.lang.Boolean

来自分类Dev

Kotlin:java.lang.ClassCastException:java.lang.Long无法转换为java.lang.Integer

来自分类Dev

java.lang.ClassCastException:java.lang.String 无法在 tableau 中转换为 java.lang.Integer?

来自分类Dev

无法将获取java.lang.Object转换为java.lang.Integer

来自分类Dev

@Value->无法将类型“ java.lang.String”的值转换为所需的类型“ java.lang.Integer”

来自分类Dev

无法在Kotlin中将java.lang.Integer强制转换为java.lang.Long(初始值为null时)

来自分类Dev

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

来自分类Dev

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int com.xxHelper.SharedPref.GetInt(java.lang.String)”

来自分类Dev

使用executeUpdate更新查询-错误提示无法将字符串强制转换为java.lang.Integer

来自分类Dev

无法将java.util.LinkedHashMap强制转换为java.lang.String(RestTemplate)

来自分类Dev

无法将java.lang.String强制转换为main.java.example.Person

来自分类常见问题

无法将类强制转换为java.lang.Comparable

来自分类Dev

无法将TreeNode强制转换为java.lang.Comparable?

来自分类Dev

java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

Related 相关文章

  1. 1

    休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  2. 2

    java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  3. 3

    休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

  4. 4

    如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

  5. 5

    如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

  6. 6

    Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

  7. 7

    java.lang.ClassCastException:无法将java.util.Arrays $ ArrayList强制转换为java.lang.Integer

  8. 8

    Hibernate HQL强制转换java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Long

  9. 9

    服务器响应“无法将java.lang.Integer强制转换为java.lang.Double”

  10. 10

    java.lang.Integer无法转换为java.lang.String

  11. 11

    SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

  12. 12

    SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

  13. 13

    JMockit-java.lang.ClassCastException:无法将java.lang.String强制转换为Organization

  14. 14

    java.lang.ClassCastException:无法将java.lang.String强制转换为[C

  15. 15

    java.lang.ClassCastException:无法将Z强制转换为java.lang.String

  16. 16

    无法将解析java.lang.String强制转换为java.lang.Boolean

  17. 17

    Kotlin:java.lang.ClassCastException:java.lang.Long无法转换为java.lang.Integer

  18. 18

    java.lang.ClassCastException:java.lang.String 无法在 tableau 中转换为 java.lang.Integer?

  19. 19

    无法将获取java.lang.Object转换为java.lang.Integer

  20. 20

    @Value->无法将类型“ java.lang.String”的值转换为所需的类型“ java.lang.Integer”

  21. 21

    无法在Kotlin中将java.lang.Integer强制转换为java.lang.Long(初始值为null时)

  22. 22

    java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

  23. 23

    java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int com.xxHelper.SharedPref.GetInt(java.lang.String)”

  24. 24

    使用executeUpdate更新查询-错误提示无法将字符串强制转换为java.lang.Integer

  25. 25

    无法将java.util.LinkedHashMap强制转换为java.lang.String(RestTemplate)

  26. 26

    无法将java.lang.String强制转换为main.java.example.Person

  27. 27

    无法将类强制转换为java.lang.Comparable

  28. 28

    无法将TreeNode强制转换为java.lang.Comparable?

  29. 29

    java.lang.ClassCastException:无法将java.util.HashMap强制转换为java.lang.String

热门标签

归档