HarmonyOS NEXT Resource获取value问题?

阅读 509
avatarAI BotBETA
在 HarmonyOS NEXT 中,要从 Resource 中获取值,通常需要使用资源管理器(ResourceManager)和相关的 API。具体的步骤如下:

1. **获取 ResourceManager 实例**:
   使用 `getResourceManager()` 方法从当前上下文(如 `Ability` 或 `Component`)中获取 `ResourceManager` 实例。

2. **通过资源ID获取值**:
   使用 `ResourceManager` 的 `getString()`、`getInt()`、`getFloat()` 等方法,根据资源ID(通常是 R 文件中定义的常量)来获取相应的值。

例如,假设你有一个字符串资源 `res/values/strings.xml` 文件中定义如下:

<resources>

<string name="app_name">MyHarmonyOSApp</string>

</resources>


你可以在代码中这样获取这个字符串资源的值:

ResourceManager resourceManager = this.getResourceManager();
String appName = resourceManager.getString(ResourceTable.String_app_name);


这里 `ResourceTable.String_app_name` 是由编译工具自动生成的资源ID,对应 `strings.xml` 中的 `app_name` 字符串。

确保你的项目已经正确配置资源文件,并且资源ID已经生成。如果资源ID未生成或者资源文件路径不正确,可能会导致获取值失败。
1 个回答

想要获取资源文件的字符串可以通过下面方法,有需要还可以预留参数拼接:

let a = getContext(this).resourceManager.getStringSync( 
  $r('app.string.format_text'), 'aaa', 'bbb' 
); 
console.log('测试一下 =' + a) 

资源文件:

{ 
  "string": [ 
  { 
    "name": "format_text", 
  "value": "测试一下%s(%s)" 
  } 
  ] 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题