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

Spinner默认选中30报错:setSelected(boolean)无法应用于int

解决Spinner设置默认选项的报错问题

嘿,这个小坑我之前踩过!你之所以会报错,核心原因是搞混了两个名字相近但功能完全不同的方法:

你用的setSelected(boolean)是View类的通用方法,它只负责设置视图本身是否处于“选中”状态(比如复选框的勾选状态),根本不是用来指定Spinner选中哪个选项的。而Spinner专门提供了setSelection(int position)方法来设置选中的选项位置。

直接把报错的代码行替换掉就行,修正后的完整代码如下:

String[] items = new String[]{"15", "30", "60", "90", "Off"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
// 注意:必须先给Spinner设置适配器,否则设置选中项不会生效
dropdown.setAdapter(adapter);
int spinnerPosition = adapter.getPosition("30");
// 用Spinner专属的setSelection方法替代setSelected
dropdown.setSelection(spinnerPosition);

额外给你加个小提示:可以加个防御性判断,避免如果数组里找不到目标字符串时出现异常(getPosition()找不到对应值会返回-1):

if (spinnerPosition != AdapterView.INVALID_POSITION) {
    dropdown.setSelection(spinnerPosition);
}

这样就能稳稳把"30"设为Spinner的默认选项啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:29:30