AppInventor2 中文社区

标题: 终于不用拿复选框凑了:App Inventor 新组件「单选框」,问卷表单一个搞定 [打印本页]

作者: App Inventor 2     时间: 2 小时前
标题: 终于不用拿复选框凑了:App Inventor 新组件「单选框」,问卷表单一个搞定
摘要:性别、支付方式、单选题——只能选一个的场景太多了。App Inventor 原来只有复选框,想做单选得自己写互斥逻辑。现在有了「单选框」组件:选项用逗号一填,点一个其它自动取消。

复选框凑单选,有多麻烦

以前做个「男 / 女 / 保密」,得放三个复选框,然后在每个复选框的「状态被改变」事件里,把另外两个的「选中」设为假。三个选项三个事件,五个选项就五个事件,加一个选项要改一圈。

「单选框」一个组件全包了。它在「用户界面」类里,用法跟下拉框很像:
选项在设计器的「元素字串」里用逗号分隔填,比如 男,女,保密;
也可以在代码里设置「元素列表」;
勾选「横向排列」,选项排成一行,适合短选项。

用户点选后触发「选择完成时」事件,选中的文字在参数里。


▲ 横向排列的单选项(示意图)

案例:性别选择

拖一个单选框,「元素字串」填 男,女,保密,勾选横向排列;再拖一个按钮(改名 按钮_提交)、一个标签(改名 标签_结果):


▲ 性别选择,提交前检查是否选了

重点在提交时的判断:单选框默认一项都不选,这时「选中项索引」是 0。提交前一定要查一下,不然用户什么都没选也提交上去了。

一份问卷有几道单选题,就放几个单选框,各管各的选项,互不干扰。


▲ 几道单选题就放几个单选框(示意图)

案例:代码里设置选项和默认值

选项是动态的(比如从服务器拿来的配送方式),就在代码里设,顺便给个默认选中:


▲ 代码里设置选项和默认选中

序号从 1 开始,设成 1 就是默认选第一项。注意:代码里设置选中项不会触发「选择完成时」,只有用户点选才会。


▲ 代码里设置选项和默认值(示意图)

属性一览

元素字串:逗号分隔的选项文字,如 男,女
元素列表:选项列表,代码里动态设置用它
选中项:选中的文字;没选时为空文本
选中项索引:从 1 开始;没选时为 0
横向排列:选项排成一行;默认竖向一行一个
字体大小 / 文本颜色 / 启用:外观与是否可点

一个提醒

提交到服务器时,别把「选中项」的文字当成固定编号存。哪天你把「加急配送」改名成「次日达」,旧数据就对不上了。需要稳定编号就存「选中项索引」,或者自己维护一张对照表。

安卓和鸿蒙都支持。文档站搜「单选框使用指导」,有完整案例和可导入的 .aia 源码。

本文首发于微信公众号「AI2中文网」。




欢迎光临 AppInventor2 中文社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3