【HarmonyOS】リストリスト、ArkUIリソースグループのデータ型

I.はじめに

  • 説明: リスト リストはモバイル デバイスで最も一般的です。たとえば、アドレス帳、テキスト メッセージ、チャット ソフトウェアなど、すべてに彼の存在が含まれています。
  • 難易度: 簡単
  • 知識ポイント:
  • 1. リストコンポーネントの使用
  • 2.ArkUI リソース グループのデータ型を理解する

2. リストリスト

1. 問題(バグ)を見つける

HarmonyOS の公式例に従って、最初にコピーしてプロジェクトで実行しましたが、システムに問題が発生し、コンソールに次のログが表示されました。

[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Lifetime: 0.000000s
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Js-Engine: ark
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]page: pages/Index.js
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Error message: is not callable
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]Stacktrace:
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at Contact (\ets\pages\Index.ets:19:9)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at SimpleContacts (\ets\pages\Index.ets:13:2)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at anonymous (webpack/startup:2:1)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at anonymous (./pages/Index.js:95:11)
[phone]08-14 16:15:37.636   972 17976 E 03900/Ace: [Engine Log]    at func_main_0 (\ets\pages\Index.ets:1:1)

これらのログを注意深く解釈した結果、キー string = util.generateRandomUUID(true);で問題が発生していることがわかりました。generateRandomUUID() メソッドを呼び出すことができません。

ここに画像の説明を挿入します

2. コードを改善する

(1) 効果

ここに画像の説明を挿入します

(2) コード

class Contact {
    
    
  // @ts-ignore
  id: integer;
  name: string;
  // @ts-ignore
  sex: integer;

  // @ts-ignore
  constructor(id:integer, name: string, sex: integer) {
    
    
    this.id = id;
    this.name = name;
    this.sex = sex;
  }
}

@Entry
@Component
struct SimpleContacts {
    
    
  private contacts = [
    new Contact(1000, '小明', 1),
    new Contact(1001, '小红', 2),
    new Contact(1002, '小歪', 3),
    new Contact(1003, '大红', 2),
  ]

  build() {
    
    
    List() {
    
    
      ForEach(this.contacts, (item: Contact) => {
    
    
        ListItem() {
    
    
          Row() {
    
    
            if (item.sex == 1) {
    
    
              Image($r('app.media.nan'))
                .width(40)
                .height(40)
                .margin(10)
            } else if (item.sex == 2) {
    
    
              Image($r('app.media.nv'))
                .width(40)
                .height(40)
                .margin(10)
            } else {
    
    
              Image($r('app.media.wai'))
                .width(40)
                .height(40)
                .margin(10)
            }
            Text(item.name).fontSize(20)
          }
          .width('100%')
          .justifyContent(FlexAlign.Start)
        }
      }, item => item.name)
    }.width('100%')
    .backgroundColor('#ffbfbfbf')
    .borderRadius(10)
    .divider({
    
    
      strokeWidth: 1,
      startMargin: 60,
      endMargin: 60,
      color: '#ffe9f0f0'
    })
  }
}

3.ArkUI リソース グループのデータ型

最初に HarmonyOS を使い始めたとき、データ型はいくつかの一般的な言語のものと同じだと思いましたが、違いがあるとは予想していませんでした。そこで公式ドキュメントを調べてみたところ、具体的なデータ型は次のとおりです。

タイプ 名前
ブール値 ブール値
浮く 浮動小数点
インアレイ 整数配列
整数 整数
パターン スタイル
複数 複数形
ストラアレイ 文字列配列

公式推奨は、データを JSON データ リソースの形式で出力することです。このブログではコード表示の便宜上、アノテーションを使用して強制変換を行っています。

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_48916759/article/details/132881934