HarmonyOS 鸿蒙Next把Resource类型转为string类型- API12

发布于 1周前 作者 nodeper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next把Resource类型转为string类型

2 回复

在HarmonyOS鸿蒙系统中,Resource类型通常指的是资源引用,比如图片、布局文件等,它们通过资源ID进行标识。在API 12中,直接将Resource类型转为string类型并不是一种直接支持的操作,因为Resource本质上是一个引用,而string是一个具体的文本数据。

不过,你可以通过获取资源ID对应的资源名称(通常是资源在XML文件中的名称,但这并不是资源的实际内容),但这仍然不是资源的string值。要获取资源的string值,通常你需要明确知道资源的类型(如string资源、图片资源等),并使用相应的API进行加载。

例如,对于string资源,你可以使用ResourcesTable.getString(resourceId)方法来获取资源ID对应的字符串内容。这里resourceId是你通过资源引用获得的ID。

如果你正在尝试获取的是其他类型的资源(如图片、颜色等),则需要使用相应的加载方法,这些方法通常不会直接返回string类型,而是返回对应的类型值(如Bitmap、Color等)。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

通过getSystemResourceManager接口获取ResourceManager对象。 再使用getStringValue接口获取指定资源ID对应的字符串。 参见具体:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-resource-manager-0000001774281590#ZH-CN_TOPIC_0000001774281590__resourcemanagergetsystemresourcemanager10

import { resourceManager } from '@kit.LocalizationKit'; 
import { BusinessError } from '@kit.BasicServicesKit'; 
 
try { 
  let systemResourceManager = resourceManager.getSystemResourceManager(); 
  systemResourceManager.getStringValue($r('sys.string.ohos_lab_vibrate').id).then((value: string) => { 
    let str = value; 
  }).catch((error: BusinessError) => { 
    console.error("systemResourceManager getStringValue promise error is " + error); 
  }); 
} catch (error) { 
  let code = (error as BusinessError).code; 
  let message = (error as BusinessError).message; 
  console.error(`systemResourceManager getStringValue failed, error code: ${code}, message: ${message}.`); 
}
回到顶部