如何获取 Spinner 中选中项的索引位置(行号)
发布时间 - 2025-12-25 00:00:00 点击率:次在 android 开发中,spinner 选中项的“行号”实际对应其在数据源中的索引位置(从 0 开始),应使用 `getselecteditemposition()` 方法获取,而非转换为字符串;该值可直接用于数据库 id 关联或逻辑判断。
在处理 Spinner 用户选择时,一个常见误区是误将 getSelectedItem().toString() 的结果当作“行号”——这实际返回的是显示文本,而非数据在适配器中的位置。若你的业务逻辑依赖于数据库记录的唯一 ID(例如 SQLite 中的 _id 字段),而 Spinner 数据由 ArrayAdapter
✅ 正确做法:
使用 Spinner.getSelectedItemPosition() 获取整型索引值:
// 假设 universite 是你的 Spinner 实例 int selectedIndex = universite.getSelectedItemPosition(); // selectedIndex 即为选中项的“行号”(0-based)
⚠️ 注意事项:
- 返回值为 int,当无任何项被选中(如 Spinner 刚初始化且未触发选择)时,返回 -1,务必做空状态校验:
if (selectedIndex >= 0) { // 安全使用 selectedIndex,例如保存到数据库 saveToDatabase(selectedIndex); } else { Toast.makeText(this, "请先选择一项", Toast.LENGTH_SHORT).show(); } - 若你使用的是自定义 BaseAdapter 或 CursorAdapter,且数据 ID 并不严格等于 position(如数据库 ID 为 101、205、3
07),则 getSelectedItemPosition() 仅提供界面顺序索引,不能直接替代真实数据库主键。此时应改用 getSelectedItem() 获取绑定的数据对象(如 YourModel item = (YourModel) universite.getSelectedItem(); int dbId = item.getId();)。
? 总结:
getSelectedItemPosition() 是获取 Spinner 当前选中项在适配器中位置的标准、高效方式,适用于基于数组/列表的简单场景;若需持久化或关联真实数据 ID,请确保数据模型支持通过 position 反查,或优先采用类型安全的数据绑定方式。
# android
# String
# 整型
# 字符串
# int
# 对象
# position
# sqlite
# 数据库
# 行号
# 的是
# 自定义
# 而非
# 绑定
# 若你
# 适用于
# 请先
# 可直接
# 无任何
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
七夕网站制作视频,七夕大促活动怎么报名?
Laravel如何升级到最新版本?(升级指南和步骤)
高端网站建设与定制开发一站式解决方案 中企动力
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
音响网站制作视频教程,隆霸音响官方网站?
Android GridView 滑动条设置一直显示状态(推荐)
如何用PHP快速搭建CMS系统?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何快速生成ASP一键建站模板并优化安全性?
高防服务器租用如何选择配置与防御等级?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何破解联通资金短缺导致的基站建设难题?
Android okhttputils现在进度显示实例代码
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Java类加载基本过程详细介绍
黑客入侵网站服务器的常见手法有哪些?
,交易猫的商品怎么发布到网站上去?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
网站建设整体流程解析,建站其实很容易!
Laravel如何处理表单验证?(Requests代码示例)
如何在服务器上三步完成建站并提升流量?
Laravel Fortify是什么,和Jetstream有什么关系
微信推文制作网站有哪些,怎么做微信推文,急?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在云指建站中生成FTP站点?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
iOS验证手机号的正则表达式
Android实现代码画虚线边框背景效果
如何在阿里云高效完成企业建站全流程?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
黑客如何通过漏洞一步步攻陷网站服务器?
如何在IIS中配置站点IP、端口及主机头?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
Python文件流缓冲机制_IO性能解析【教程】
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
简单实现Android文件上传
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
如何在建站之星绑定自定义域名?
奇安信“盘古石”团队突破 iOS 26.1 提权
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何快速配置高效服务器建站软件?
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法


07),则 getSelectedItemPosition() 仅提供界面顺序索引,不能直接替代真实数据库主键。此时应改用 getSelectedItem() 获取绑定的数据对象(如 YourModel item = (YourModel) universite.getSelectedItem(); int dbId = item.getId();)。