鸿蒙OS开发实例:【demo选择列表限定数量】

效果图:

cke_143.png

示例代码

// 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本为 api 9 及以上。
// 主要功能及注意事项:
// 该组件展示了一个乘客选择列表。列表中的每个项目包含一个复选框和对应的乘客姓名,
// 用户点击任意一项即可切换其选中状态。组件通过限制最多只能选择5名乘客,
// 并在超过限制时通过promptAction模块弹出 toast 提示用户。
// 注意,代码中的Checkbox组件目前设置为不可更改(enabled(false)),
// 在实际应用中可以根据需求决定是否允许用户手动改变复选框状态。// 导入提示操作模块
import promptAction from '@ohos.promptAction';// 定义数据模型类ItemData
class ItemData {// 名字属性name: string;// 是否选中属性isSelect: boolean;// 构造函数初始化数据constructor(name: string, isSelect: boolean) {this.name = name;this.isSelect = isSelect;}
}// 标记为入口文件并创建组件
@Entry
@Component
struct test {// 状态变量arr用于存储ItemData对象数组@State arr: Array<ItemData> = [new ItemData('赵大', false),new ItemData('钱二', false),new ItemData('张三', false),new ItemData('李四', false),new ItemData('王五', false),new ItemData('周六', false),new ItemData('李七', false),new ItemData('朱八', false)];// 构建UI组件的方法build() {// 创建垂直方向布局Column() {// 显示提示文本Text('请选择乘客,最多限五人').margin({ top: '60lpx', left: '50lpx', bottom: '10lpx' });// 遍历存储乘客信息的数据数组ForEach(this.arr, (item: ItemData, index: number) => {// 创建水平方向布局Row() {// 创建复选框组件,禁用修改(此处可能是样式演示,实际应用中可去除.enabled(false))Checkbox().enabled(false).select(item.isSelect).width('41lpx').height('41lpx').selectedColor("#FF53B175");// 显示乘客姓名文本Text(item.name).fontSize('27lpx').margin({ left: '10lpx' }).fontWeight(400).fontColor(item.isSelect ? "#FF53B175" : "#FF181725")// 当行组件点击事件处理}.onClick(() => {// 反转当前项的选中状态item.isSelect = !item.isSelect;// 计算已选中乘客数量let isSelectCount = 0;for (let i = 0; i < this.arr.length; i++) {if (this.arr[i].isSelect) {isSelectCount++;}}// 如果已选中超过5人,则恢复当前项未选中状态并弹出提示if (isSelectCount > 5) {item.isSelect = !item.isSelect;try {// 使用promptAction模块显示toast消息promptAction.showToast({message: '最多限五人',duration: 2000,bottom: '375lpx'});} catch (error) {// 忽略错误}return;}// 更新数组中对应项的状态this.arr[index] = new ItemData(item.name, item.isSelect);})// 设置行组件的边距.margin({ left: '40lpx', top: '10lpx' })})} // 设置Column组件的整体样式.width('100%').height('100%').backgroundColor("#FFF2F3F2").justifyContent(FlexAlign.Start).alignItems(HorizontalAlign.Start);}
}
鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术
鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。或+mau123789学习,是v喔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯2019年第十三届省赛真题-数列求值

一、题目 数列求值 【问题描述】 给定数列 1, 1, 1, 3, 5, 9, 17, …&#xff0c;从第 4 项开始&#xff0c;每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一个 4 位整数&a…

MATLAB 自定义生成圆柱点云(49)

MATLAB 自定义生成圆柱点云(49) 一、算法介绍二、具体实现1.代码2.效果一、算法介绍 按照一些提前指定的圆柱参数,自定义生成圆柱点云,可添加噪声,用于后续的实验测试 二、具体实现 1.代码 代码如下(示例): % 指定圆柱的参数 radius = 5; % 圆柱半径 height = 20…

【Spring源码】Bean采用什么数据结构进行存储

一、前瞻 经过上篇源码阅读博客的实践&#xff0c;发现按模块阅读也能获得不少收获&#xff0c;而且能更加系统地阅读源码。 今天的阅读方式还是按模块阅读的方式&#xff0c;以下是Spring各个模块的组成。 那今天就挑Beans这个模块来阅读&#xff0c;先思考下本次阅读的阅读…

Jmeter脚本优化——随机函数

线程组下有 2 个请求的参数中均使用到相同的参数&#xff0c;在进行参数化时&#xff0c;想 要每个请求使用不同的取值。 &#xff08; 1 &#xff09; 线程组设置如下 &#xff08; 2 &#xff09; 线程组下添加加购物车请求&#xff0c;请求传参包含商品 id &#xff08;…

前端日期组件layui使用,月模式

初学前端&#xff0c;实战总结 概要 有一个日期组件&#xff0c;我的谷歌浏览器选完日期后&#xff0c;偶尔获取不到最新数据&#xff0c;有一个客户&#xff0c;是经常出不来数据。 日期组件是Wdate&#xff1a;调用的方法是WdatePicker onpicking&#xff0c;代码片段如下…

基于AT89C51单片机的智能交通灯设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/89035863?spm1001.2014.3001.5503 1绪 论 1.1课题研究背景 交通是城市经济活动的命脉&#xff0c;对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交…

302.【华为OD机试】叠积木(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-叠积木二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码…

干货分享DS5L1伺服电机通过倍讯科技485转 Profinet 网关与西门子PLC进行通信的配置方法

倍讯科技485转 ProfinetDS5L1 伺服电机与 Profinet 网关进行通信需要了解 Profinet 协议和伺服电机的具体通信要求。以下是您可以如何解决此问题的总体概述&#xff1a; 了解 Profinet&#xff1a;Profinet 是自动化工业以太网标准。您需要了解 Profinet 的工作原理、其寻址方案…

纳斯达克大屏:媒体尺寸及投放费用详解

纳斯达克大屏媒体尺寸及投放费用详解 纳斯达克图片要求 像素 纳斯达克大屏媒体图片的像素要求为2336 H x 1832 W (pixels)。确保你的图片符合这一尺寸要求&#xff0c;以确保在大屏上的显示效果最佳。 分辨率 分辨率要求为(1.0) px 72 dpi。这意味着每个像素显示为一个实…

Java 加载外部 Jar 中的类并通过反射调用类中的方法

目录 问题 类加载器 获取外部 jar 包中的类以及方法 调用外部 jar 包中的方法 问题 工作中遇到一个需求&#xff0c;客户端将第三方的 jar 包上传到服务器中&#xff0c;系统需要解析出上传的 jar 中所有类以及类下的方法&#xff08;方法名&#xff0c;方法输入参数类型&…

Spire.PDF for .NET【文档操作】演示:查找并删除 PDF 中的空白页

PDF 中的空白页并不罕见&#xff0c;因为它们可能是作者故意留下的或在操作文档时意外添加的。当您阅读或打印文档时&#xff0c;这些空白页可能会很烦人&#xff0c;因此可能非常有必要将其删除。在本文中&#xff0c;您将了解如何使用Spire.PDF for .NET以编程方式查找和删除…

亲测有效Djiango连接oracle

navicat连接本地oracle截图。 Djiango下面settings.py下面的DATABASES&#xff1a; 注意&#xff1a;USER最好不要用sys或者system可能会导致连接不了&#xff0c;最好是自己新建的oracle用户。

Aapche Nutch建立自己的搜索引擎

sudo apt install default-jdk‘ java -version openjdk version "11.0.22" 2024-01-16 vi .bashrc export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 爬梯子下载源代码 Apache Nutch™ – Downloads mkdir -p urls cd urls touch seed.txt 里面放入我的网站…

Redis是单线程还是多线程

之前面试又被问到这个问题&#xff0c;一直以为Redis是单线程&#xff0c;直到面试官的指点&#xff0c;才发现这么说有误&#xff0c;于是查了很多资料&#xff0c;下面简单聊聊Redis是单线程还是多线程&#xff1f; 单线程数据操作 首先需要理清一个基本概念&#xff1a;所…

【C++11】thread线程库

【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数&#xff1a;atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…

VGG16神经网络搭建

一、定义提取特征网络结构 将要实现的神经网络参数存放在列表中&#xff0c;方便使用。 数字代表卷积核的个数&#xff0c;字符代表池化层的结构 cfgs {"vgg11": [64, M, 128, M, 256, 256, M, 512, 512, M, 512, 512, M],VGG13: [64, 64, M, 128, 128, M, 256, …

「11」显示器采集:捕获单个显示器的完整视频画面

「11」显示器采集捕获单个显示器的完整视频画面 在OBS软件中&#xff0c;「显示器采集」是一种用于捕集显示器屏幕画面的功能&#xff0c;您可以将其用于整个桌面窗口的采集到直播间。该功能主要用于捕捉您的计算机桌面屏幕内容&#xff0c;以便将其实时显示在直播窗口中&#…

MySQL Explain 字段详解

Explain 工具介绍 Explain 一般被称为解释器&#xff0c;通过 Explain 工具&#xff0c;我们能分析我们使用的查询语句或是结构的性能瓶颈&#xff0c;它提供 MySQL 如何执行语句的信息。 使用语法&#xff1a; explain [extended|partition] select在 select 关键字前加 ex…

第 1 章.提示词:开启AI智慧之门的钥匙

什么是提示词&#xff1f; 提示词&#xff0c;是引导语言模型的指令&#xff0c;让用户能够驾驭模型的输出&#xff0c;确保生成的文本符合需求。 ChatGPT&#xff0c;这位文字界的艺术大师&#xff0c;以transformer架构为基石&#xff0c;能轻松驾驭海量数据&#xff0c;编织…

R 生存分析3:Cox等比例风险回归及等比例风险检验

虽然Kaplan-Meier分析方法目前应用很广&#xff0c;但是该方法存在一下局限: 对于一些连续型变量&#xff0c;必须分类下可以进行生存率对比 是一种单变量分析&#xff0c;无法同时对多组变量进行分析 是一种非参数分析方法&#xff0c;必须有患者个体数据才能进行分析 英国…