HarmonyOS 鸿蒙Next ResouceStr如何转化成string类型
HarmonyOS 鸿蒙Next ResouceStr如何转化成string类型
关于HarmonyOS 鸿蒙Next ResouceStr如何转化成string类型的问题,也可以学学鸿蒙Next教程:https://www.itying.com/goods-1204.html
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
是的,我找到了原因,因为我是通过变量this.name = $r(‘app.string.name’) getStringSync(this.name)去取,是取不到的,也不知道为什么
我的知识可能是错误的。你可以先参考一下。ResourceManager
确实可以通过getContext().getResourceManager()
获取,这允许你访问资源,如字符串、颜色、尺寸等。
对于Resource
类型和String
类型的问题,HarmonyOS可能并没有直接提供一个类型如ResourceStr
,
但是你可能会遇到类似的情况,比如在某些地方你可能需要处理可能是资源ID也可能是直接字符串的情况。
通常,你可能在配置文件或代码中指定一些字符串资源,例如:xml<br><!-- 在resources/strings.xml中 --><br><value name="app_name">Hello World</value><br>
然后在代码中引用:js<br>let appName = context.getString($r("string.app_name"));<br>
这里$r("string.app_name")
返回的是资源ID,是一个number
类型,而context.getString(resourceId)
会根据这个ID去资源文件中查找并返回对应的字符串。
如果你的代码中接受的参数可能是资源ID也可能是直接的字符串,你可以通过类型检查来决定如何处理。例如:js<br>let value = ...; // 可能是resource ID,也可能是字符串<br><br>if (typeof value === 'number') {<br> // 这是一个资源ID,需要转换为字符串<br> value = context.getString(value);<br>}<br><br>console.log(value);<br>
也可能
更好的方式是,改变设计,避免在一处代码中同时处理资源ID和字符串。例如,你可以总是使用字符串,然后在需要的时候通过context.getString()
从资源ID转换为字符串。这样可以使代码更清晰,也更容易理解。