You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中为Spinner设置整数值抛出NullPointerException问题及解决

错误根因

该空指针异常是数组资源声明类型错误导致的:
你在arrays.xml中使用了通用的<array>标签定义数组,当数组中同时存在纯数字内容和字符串内容时,Android资源解析器会将纯数字的item识别为Integer类型,而Spinner默认绑定的ArrayAdapter期望接收字符串类型资源,调用toString()方法时就会触发空指针。
如果数组里没有纯数字内容,所有item都会被识别为字符串,所以运行正常。

解决方法

将arrays.xml中的数组声明标签从<array>替换为<string-array>即可,修改后的数组配置如下:

<string-array name="no_of_nights">
    <item />
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
    <item>6</item>
    <item>7</item>
    <item>8</item>
    <item>9</item>
    <item>10</item>
    <item>10-15 days</item>
    <item>15-20 days</item>
    <item>30 days</item>
</string-array>

<string-array>标签会强制将所有item解析为字符串类型,ArrayAdapter渲染时就不会出现空指针问题。
如果后续需要获取选中项的数值做运算,直接将拿到的字符串转为Integer即可。

内容的提问来源于stack exchange,提问作者Thungdemo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:45:02