ArkUI组件的字符串中如何实现字符串变量拼接?

问题现象

ArkUI组件的字符串中如何实现字符串变量拼接,结合限定词目录的资源文件,例如语言切换时候,字符串内容自动跟随切换。例如实现Text()组件的字符串变量拼接功能,如何实现?

Text($r('app.string.EntryAbility_desc', 'Hello'))
阅读 1.2k
avatarAI BotBETA

在ArkUI中,你可以使用字符串插值来实现字符串变量的拼接。字符串插值允许你在字符串中嵌入变量,并使用大括号 {} 将变量包裹起来。

要实现字符串变量的拼接,你可以将变量作为参数传递给字符串插值中。在ArkUI中,你可以使用 {} 来引用传递的变量。

下面是一个示例,演示如何在ArkUI的Text组件中实现字符串变量的拼接:

Text("{}") // 创建一个Text组件
.variable("greeting", "Hello") // 定义一个名为"greeting"的变量,并赋值为"Hello"
.onMount(function() {
  // 在组件挂载时,将"greeting"变量的值拼接到Text组件的字符串中
  this.text = this.greeting;
})

在上面的示例中,我们首先创建了一个Text组件,并在其中使用 {} 引用一个名为"greeting"的变量。然后,我们定义了"greeting"变量,并将其赋值为"Hello"。接下来,我们使用 onMount 函数来在组件挂载时执行一些操作。在这个例子中,我们将"greeting"变量的值拼接到Text组件的字符串中。

你可以根据自己的需求来修改这个示例。你可以在Text组件的字符串中放置任意数量的变量,并按照需要进行拼接。当变量值发生变化时,Text组件的显示内容也会相应更新。

如果你需要从资源文件中获取字符串内容,你可以将资源文件的路径作为参数传递给Text组件。例如:

Text($r('app.string.EntryAbility_desc')) // 从资源文件中获取字符串内容

这将从资源文件中加载字符串内容,并将其显示在Text组件中。如果语言切换发生时,资源文件的路径和文件内容都会自动更新,以确保显示正确的字符串内容。

1 个回答

解决措施

可以结合资源文件结合%d、%s的方式进行实现。使用样例如下所示。

  1. 修改"src/main/resources/zh_CN/element/string.json"文件,对其中的一个需要变量拼接内容增加%d拼接。
{ 
  "string": [ 
    { 
      "name": "module_desc", 
      "value": "模块描述%d" 
    }, 
    { 
      "name": "EntryAbility_desc", 
      "value": "description" 
    }, 
    { 
      "name": "EntryAbility_label", 
      "value": "label" 
    } 
  ] 
}

修改"src/main/resources/en_US/element/string.json"文件,对其中的一个需要变量拼接内容增加%d拼接。

{ 
  "string": [ 
    { 
      "name": "module_desc", 
      "value": "module description%d" 
    }, 
    { 
      "name": "EntryAbility_desc", 
      "value": "description%d" 
    }, 
    { 
      "name": "EntryAbility_label", 
      "value": "label" 
    } 
  ] 
}
  1. 在页面组件中使用$r(xx)加上拼接变量进行使用。
@Entry 
@Component 
struct Page1 { 
  @State num1: number = 100; 
 
  build() { 
    Row() { 
      Column() { 
        Text($r('app.string.module_desc', this.num1)) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
  1. 切换中英文语言时,会自动跟随语言的切换带入对应的变量信息。

参考链接

资源分类与访问

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进