0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開(kāi)發(fā)實(shí)例:【demo選擇列表限定數(shù)量】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-26 22:24 ? 次閱讀

效果圖:

cke_143.png

示例代碼

// 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上。
// 主要功能及注意事項(xiàng):
// 該組件展示了一個(gè)乘客選擇列表。列表中的每個(gè)項(xiàng)目包含一個(gè)復(fù)選框和對(duì)應(yīng)的乘客姓名,
// 用戶(hù)點(diǎn)擊任意一項(xiàng)即可切換其選中狀態(tài)。組件通過(guò)限制最多只能選擇5名乘客,
// 并在超過(guò)限制時(shí)通過(guò)promptAction模塊彈出 toast 提示用戶(hù)。
// 注意,代碼中的Checkbox組件目前設(shè)置為不可更改(enabled(false)),
// 在實(shí)際應(yīng)用中可以根據(jù)需求決定是否允許用戶(hù)手動(dòng)改變復(fù)選框狀態(tài)。


// 導(dǎo)入提示操作模塊
import promptAction from '@ohos.promptAction';

// 定義數(shù)據(jù)模型類(lèi)ItemData
class ItemData {
  // 名字屬性
  name: string;
  // 是否選中屬性
  isSelect: boolean;

  // 構(gòu)造函數(shù)初始化數(shù)據(jù)
  constructor(name: string, isSelect: boolean) {
    this.name = name;
    this.isSelect = isSelect;
  }
}

// 標(biāo)記為入口文件并創(chuàng)建組件
@Entry
@Component
struct test {
  // 狀態(tài)變量arr用于存儲(chǔ)ItemData對(duì)象數(shù)組
  @State arr: Array< ItemData > = [
    new ItemData('趙大', false),
    new ItemData('錢(qián)二', false),
    new ItemData('張三', false),
    new ItemData('李四', false),
    new ItemData('王五', false),
    new ItemData('周六', false),
    new ItemData('李七', false),
    new ItemData('朱八', false)
  ];

  // 構(gòu)建UI組件的方法
  build() {
    // 創(chuàng)建垂直方向布局
    Column() {
      // 顯示提示文本
      Text('請(qǐng)選擇乘客,最多限五人')
        .margin({ top: '60lpx', left: '50lpx', bottom: '10lpx' });

      // 遍歷存儲(chǔ)乘客信息的數(shù)據(jù)數(shù)組
      ForEach(this.arr, (item: ItemData, index: number) = > {
        // 創(chuàng)建水平方向布局
        Row() {
          // 創(chuàng)建復(fù)選框組件,禁用修改(此處可能是樣式演示,實(shí)際應(yīng)用中可去除.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")

          // 當(dāng)行組件點(diǎn)擊事件處理

        }
        .onClick(() = > {
          // 反轉(zhuǎn)當(dāng)前項(xiàng)的選中狀態(tài)
          item.isSelect = !item.isSelect;

          // 計(jì)算已選中乘客數(shù)量
          let isSelectCount = 0;
          for (let i = 0; i < this.arr.length; i++) {
            if (this.arr[i].isSelect) {
              isSelectCount++;
            }
          }

          // 如果已選中超過(guò)5人,則恢復(fù)當(dāng)前項(xiàng)未選中狀態(tài)并彈出提示
          if (isSelectCount > 5) {
            item.isSelect = !item.isSelect;
            try {
              // 使用promptAction模塊顯示toast消息
              promptAction.showToast({
                message: '最多限五人',
                duration: 2000,
                bottom: '375lpx'
              });
            } catch (error) {
              // 忽略錯(cuò)誤
            }
            return;
          }

          // 更新數(shù)組中對(duì)應(yīng)項(xiàng)的狀態(tài)
          this.arr[index] = new ItemData(item.name, item.isSelect);
        })
        // 設(shè)置行組件的邊距
        .margin({ left: '40lpx', top: '10lpx' })
      })
    } // 設(shè)置Column組件的整體樣式
    .width('100%')
    .height('100%')
    .backgroundColor("#FFF2F3F2")
    .justifyContent(FlexAlign.Start)
    .alignItems(HorizontalAlign.Start);
  }
}

審核編輯 黃宇

鴻蒙OS開(kāi)發(fā)更多內(nèi)容↓點(diǎn)擊HarmonyOSOpenHarmony技術(shù)
鴻蒙技術(shù)文檔開(kāi)發(fā)知識(shí)更新庫(kù)gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在這。或+mau123789學(xué)習(xí),是v喔
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2295

    瀏覽量

    42638
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4346
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HDC2024華為發(fā)布鴻蒙原生智能:AI與OS深度融合,開(kāi)啟全新的AI時(shí)代

    6月21日,華為開(kāi)發(fā)者大會(huì)2024(HDC.2024)召開(kāi)。 HarmonyOS NEXT將AI與OS深度融合,構(gòu)筑全新鴻蒙原生智能框架。大會(huì)現(xiàn)場(chǎng),華為常務(wù)董事、終端BG董事長(zhǎng)、智能汽車(chē)解決方案BU
    的頭像 發(fā)表于 06-24 09:28 ?556次閱讀
    HDC2024華為發(fā)布<b class='flag-5'>鴻蒙</b>原生智能:AI與<b class='flag-5'>OS</b>深度融合,開(kāi)啟全新的AI時(shí)代

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(多設(shè)備自適應(yīng)能力)實(shí)例

    Demo展示在JS中的多設(shè)備自適應(yīng)能力,包括資源限定詞、原子布局和響應(yīng)式布局。
    的頭像 發(fā)表于 05-20 18:27 ?1218次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【一次<b class='flag-5'>開(kāi)發(fā)</b>,多端部署】(多設(shè)備自適應(yīng)能力)<b class='flag-5'>實(shí)例</b>

    鴻蒙OS崛起,鴻蒙應(yīng)用開(kāi)發(fā)工程師成市場(chǎng)新寵

    應(yīng)用的形態(tài)也在發(fā)生著翻天覆地的變化。作為全球領(lǐng)先的移動(dòng)操作系統(tǒng)和智能終端制造商,華為公司自主研發(fā)的鴻蒙OS應(yīng)運(yùn)而生,致力于構(gòu)建一個(gè)統(tǒng)一的分布式操作系統(tǒng),為各行各業(yè)的應(yīng)用開(kāi)發(fā)帶來(lái)全新的可能性。 一、
    發(fā)表于 04-29 17:32

    鴻蒙OS開(kāi)發(fā)實(shí)例:【Native C++】

    使用DevEco Studio創(chuàng)建一個(gè)Native C++應(yīng)用。應(yīng)用采用Native C++模板,實(shí)現(xiàn)使用NAPI調(diào)用C標(biāo)準(zhǔn)庫(kù)的功能。使用C標(biāo)準(zhǔn)庫(kù)hypot接口計(jì)算兩個(gè)給定數(shù)平方和的平方根。在輸入框中輸入兩個(gè)數(shù)字,點(diǎn)擊計(jì)算結(jié)果按鈕顯示計(jì)算后的數(shù)值。
    的頭像 發(fā)表于 04-14 11:43 ?2391次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【Native C++】

    OpenHarmony開(kāi)發(fā)實(shí)例:【鴻蒙.bin文件燒錄】

    如何使用HiBurn工具燒錄鴻蒙的.bin文件到Hi3861開(kāi)發(fā)板。
    的頭像 發(fā)表于 04-14 09:54 ?357次閱讀
    OpenHarmony<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【<b class='flag-5'>鴻蒙</b>.bin文件燒錄】

    鴻蒙OS開(kāi)發(fā)實(shí)例:【HarmonyHttpClient】網(wǎng)絡(luò)框架

    鴻蒙上使用的Http網(wǎng)絡(luò)框架,里面包含純Java實(shí)現(xiàn)的HttpNet,類(lèi)似okhttp使用,支持同步和異步兩種請(qǐng)求方式;還有鴻蒙版retrofit,和Android版Retrofit相似的使用,解放雙手般優(yōu)雅使用注解、自動(dòng)解析json
    的頭像 發(fā)表于 04-12 16:58 ?770次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【HarmonyHttpClient】網(wǎng)絡(luò)框架

    鴻蒙OS開(kāi)發(fā)學(xué)習(xí):【尺寸適配實(shí)現(xiàn)】

    鴻蒙開(kāi)發(fā)中,尺寸適配是一個(gè)重要的概念,它可以幫助我們?cè)诓煌聊怀叽绲脑O(shè)備上正確顯示和布局我們的應(yīng)用程序。本文將介紹如何在鴻蒙開(kāi)發(fā)中實(shí)現(xiàn)尺寸適配的方法。
    的頭像 發(fā)表于 04-10 16:05 ?1576次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>學(xué)習(xí):【尺寸適配實(shí)現(xiàn)】

    鴻蒙OS南向開(kāi)發(fā)實(shí)戰(zhàn):【智能電子牌】

    Demo是基于hi3516dv300開(kāi)發(fā)板,使用開(kāi)源鴻蒙OpenHarmony 開(kāi)發(fā)的應(yīng)用。通過(guò)該應(yīng)用不僅可以查看時(shí)間、日期以及對(duì)應(yīng)的室內(nèi)外溫濕度、空氣質(zhì)量等,還可以查看當(dāng)日的行程,
    的頭像 發(fā)表于 04-09 15:24 ?717次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>南向<b class='flag-5'>開(kāi)發(fā)</b>實(shí)戰(zhàn):【智能電子牌】

    鴻蒙OS開(kāi)發(fā)實(shí)例:【組件化模式】

    組件化一直是移動(dòng)端比較流行的開(kāi)發(fā)方式,有著編譯運(yùn)行快,業(yè)務(wù)邏輯分明,任務(wù)劃分清晰等優(yōu)點(diǎn),針對(duì)Android端的組件化;與Android端的組件化相比,HarmonyOS的組件化可以說(shuō)實(shí)現(xiàn)起來(lái)就頗費(fèi)
    的頭像 發(fā)表于 04-07 17:44 ?531次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【組件化模式】

    鴻蒙OS開(kāi)發(fā)實(shí)例:【應(yīng)用事件打點(diǎn)】

    傳統(tǒng)的日志系統(tǒng)里匯聚了整個(gè)設(shè)備上所有程序運(yùn)行的過(guò)程流水日志,難以識(shí)別其中的關(guān)鍵信息。因此,應(yīng)用開(kāi)發(fā)者需要一種數(shù)據(jù)打點(diǎn)機(jī)制,用來(lái)評(píng)估如訪問(wèn)數(shù)、日活、用戶(hù)操作習(xí)慣以及影響用戶(hù)使用的關(guān)鍵因素等關(guān)鍵信息
    的頭像 發(fā)表于 04-07 17:13 ?387次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【應(yīng)用事件打點(diǎn)】

    鴻蒙開(kāi)發(fā)實(shí)例:【demo-搜索歷史記錄】

    HarmonyOs-demo-搜索歷史記錄
    的頭像 發(fā)表于 03-26 22:40 ?522次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)例</b>:【<b class='flag-5'>demo</b>-搜索歷史記錄】

    鴻蒙實(shí)戰(zhàn)項(xiàng)目開(kāi)發(fā):【短信服務(wù)】

    、ohos.permission.GET_TELEPHONY_STATE為system_basic級(jí)別(相關(guān)權(quán)限級(jí)別可通過(guò)[權(quán)限定列表] 查看),需要手動(dòng)配置對(duì)應(yīng)級(jí)別的權(quán)限簽名(具體操作可查看自動(dòng)化簽名方案; 本示例為預(yù)置
    發(fā)表于 03-03 21:29

    鴻蒙OS和開(kāi)源鴻蒙什么關(guān)系?

    內(nèi)核,其他功能都以模塊的形式存在。 ? ? 華為用的是鴻蒙OS 我們都知道,華為手機(jī)的鴻蒙OS是可以運(yùn)行安卓軟件的,是因?yàn)橄到y(tǒng)中有安卓兼容層,所以可以簡(jiǎn)單這么理解:
    的頭像 發(fā)表于 01-30 15:44 ?1007次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>和開(kāi)源<b class='flag-5'>鴻蒙</b>什么關(guān)系?

    免費(fèi)學(xué)習(xí)鴻蒙(HarmonyOS)開(kāi)發(fā),一些地址分享

    國(guó)內(nèi)一流高校。通過(guò)鴻蒙班的設(shè)立,高??梢詾閷W(xué)生提供專(zhuān)業(yè)的鴻蒙OS學(xué)習(xí)環(huán)境和豐富的實(shí)踐機(jī)會(huì),培養(yǎng)出更多的鴻蒙開(kāi)發(fā)人才,為
    發(fā)表于 01-12 20:48

    鴻蒙 OS 應(yīng)用開(kāi)發(fā)初體驗(yàn)

    的操作系統(tǒng)平臺(tái)和開(kāi)發(fā)框架。HarmonyOS 的目標(biāo)是實(shí)現(xiàn)跨設(shè)備的無(wú)縫協(xié)同和高性能。 DevEco Studio 對(duì)標(biāo) Android Studio,開(kāi)發(fā)鴻蒙 OS 應(yīng)用的 IDE。
    發(fā)表于 11-02 19:38