【每日学点HarmonyOS Next知识】获取资源问题、软键盘弹起、swiper更新、C给图片设置位图、读取本地Json

devtools/2025/3/13 16:33:33/
1、HarmonyOS Resource获取value问题?

在resources-base-elements-string.json中创建了一个字符串常量,使用Text组件引用可以正常展示,但使用resourceManager.getSystemResourceManager().getStringValue()方法获取,提示9001001。

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

let a = getContext(this).resourceManager.getStringSync($r('app.string.format_text'), 'aaa', 'bbb'
);
console.log('测试一下 =' + a)资源文件:
{"string": [{"name": "format_text","value": "测试一下%s(%s)"}]
}
2、HarmonyOS TextInput如何控制键盘的弹起和消失?

可以通过showTextInput方法显示软键盘,hideTextInput隐藏软键盘,文档连接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inputmethod-V5#ZH-CN_TOPIC_0000001884918610__hidetextinput10
在这里插入图片描述

import inputMethod from '@ohos.inputMethod';
@Entry
@Component
struct Index2 {@State message: string = 'Hello World';build() {Row() {Column() {TextInput().backgroundColor(Color.Pink)Button('拉起软键盘').onClick(()=>{inputMethod.getController().showTextInput()}).backgroundColor(Color.Green)Button('隐藏软键盘').onClick(()=>{inputMethod.getController().hideTextInput()}).backgroundColor(Color.Orange)}.width('100%').height('100%')}.height('100%')}
}
3、HarmonyOS swiper 放置的内容 无法动态更新?

参考文档:

  • https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-rendering-control-lazyforeach-V5
  • https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/arkts-state.md#%E8%A7%82%E5%AF%9F%E5%8F%98%E5%8C%96%E5%92%8C%E8%A1%8C%E4%B8%BA%E8%A1%A8%E7%8E%B0

关于State变量的监控范围,由于Data的写法是在列表内包含了对象,Data[] = [{ h: 1 }, { h: 2 }, { h: 3 }]对象的具体属性值的变化无法被监控到。解决办法是Data有修改后,将Data深拷贝并重新赋值给Data,以使State监控到整体列表的变化

4、HarmonyOS ArkUI C API如何给IMAGE组件设置位图图像?

ArkUI C API如何给IMAGE组件设置位图图像
参考demo:

if (nodeAPI->createNode != nullptr && nodeAPI->addChild != nullptr) {ArkUI_NodeHandle imageNode = nodeAPI->createNode(ARKUI_NODE_IMAGE);uint8_t data[96];for (auto i = 0; i < 92; i++) {data[i] = uint8_t(0);data[i + 1] = uint8_t(0);data[i + 2] = uint8_t(0);data[i + 3] = uint8_t(255);i = i + 4;}OH_Pixelmap_InitializationOptions *options = nullptr;OH_PixelmapInitializationOptions_Create(&options);OH_PixelmapInitializationOptions_SetWidth(options, 4);OH_PixelmapInitializationOptions_SetHeight(options, 6);OH_PixelmapInitializationOptions_SetPixelFormat(options, 4);OH_PixelmapInitializationOptions_SetAlphaType(options, 0);OH_PixelmapNative *g_PixelMap = nullptr;OH_PixelmapNative_CreatePixelmap(data, 96, options, &g_PixelMap);ArkUI_DrawableDescriptor *drawable = nullptr;drawable = OH_ArkUI_DrawableDescriptor_CreateFromPixelMap(g_PixelMap);ArkUI_AttributeItem img_src_item = {.object = drawable};nodeAPI->setAttribute(imageNode, NODE_IMAGE_SRC, &img_src_item);ArkUI_NumberValue value[1] = {{.f32 = 300}};
ArkUI_AttributeItem item = {value, 1};
nodeAPI->setAttribute(imageNode, NODE_HEIGHT, &item);
nodeAPI->setAttribute(imageNode, NODE_WIDTH, &item);
OH_NativeXComponent_AttachNativeRootNode(component, imageNode);
}
json_98">5、HarmonyOS 如何读取本地json文件?

如何读取本地json文件

参考demo:

import { Context } from '@ohos.abilityAccessCtrl';
import buffer from '@ohos.buffer';@Entry
@Component
struct Index {private context: Context = getContext(this);private str: string=''getRawFile(): ESObject {//调用getRawFileContent接口获取json文件内容,并读为stringgetContext(this).resourceManager.getRawFileContent("a.json", (err, data) => {try {this.str = buffer.from(data.buffer).toString();} catch (e) {console.info(JSON.stringify(e))}})try {let data: Uint8Array = this.context.resourceManager.getRawFileContentSync("a.json");this.str = buffer.from(data.buffer).toString();console.log(this.str)} catch (e) {console.info(JSON.stringify(e))}let obj: ESObject = JSON.parse(this.str)return obj}build() {Column() {Button("get").onClick(() => {this.getRawFile()})}.width('100%')}
}

http://www.ppmy.cn/devtools/166817.html

相关文章

Java EE 进阶:SpringBoot 配置⽂件

什么是配置文件 “配置文件”是一个用来保护程序或者系统设置信息的文件&#xff0c;它的作用是让程序在启动或者运行中&#xff0c;能够读取这些设置并按预期进行工作&#xff0c;而不需要手动的设置。 Spring Boot 配置文件 设置服务器端口、编码格式配置数据库连接控制日…

深入解析pnpm与npm:颠覆传统包管理的技术革命与应用实践

深入解析pnpm与npm&#xff1a;颠覆传统包管理的技术革命与应用实践 引言&#xff1a;被node_modules支配的恐惧 "你的node_modules有多大&#xff1f;"这个灵魂拷问总能引发开发者会心一笑。当项目规模达到500MB时&#xff0c;npm install需要喝三杯咖啡的时间&am…

每日OJ_牛客_过桥_贪心+BFS_C++_Java

目录 牛客_过桥_贪心BFS 题目解析 C代码 Java代码 牛客_过桥_贪心BFS 过桥 描述&#xff1a; dd被困在了一个迷幻森林&#xff0c;现在她面前有一条凶险的大河&#xff0c;河中央有n个神奇的浮块&#xff0c;浮块按1∼n1顺序标号&#xff0c;但两两并不相接&…

Spring Boot拦截器(Interceptor)详解

拦截器Interceptor 拦截器我们主要分为三个方面进行讲解&#xff1a; 介绍下什么是拦截器&#xff0c;并通过快速入门程序上手拦截器拦截器的使用细节通过拦截器Interceptor完成登录校验功能 1. 快速入门 什么是拦截器&#xff1f; 是一种动态拦截方法调用的机制&#xff…

Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。

文章目录 前言1 创建conda环境安装Selenium库2 浏览器驱动下载&#xff08;以Chrome和Edge为例&#xff09;3 基础使用&#xff08;以Chrome为例演示&#xff09;3.1 与浏览器相关的操作3.1.1 打开/关闭浏览器3.1.2 访问指定域名的网页3.1.3 控制浏览器的窗口大小3.1.4 前进/后…

【华为OD机考真题】- 星际篮球争霸赛(Java)

1. 题目描述 具体题目描述如下&#xff1a; 在星球争霸篮球赛对抗赛中&#xff0c;最大的宇宙战队希望每个人都能拿到 MVP&#xff0c;MVP 的条件是单场最高分得分获得者。 可以并列&#xff0c;所以宇宙战队决定在比赛中&#xff0c;尽可能让更多队员上场,并且让所有得分的选手…

Ubuntu-配置apt国内源

Ubuntu-配置apt国内源 安装vim apt-get update apt-get install -y vim备份 cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源数据 vim /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://m…

信息安全意识之安全组织架构图

一、信息安全技术概论1.网络在当今社会中的重要作用2.信息安全的内涵 网络出现前&#xff1a;主要面向数据的安全&#xff0c;对信息的机密性、完整性和可用性的保护&#xff0c;即CIA三元组 网络出现后&#xff0c;还涵盖了面向用户的安全&#xff0c;即鉴别&#xff0c;授权&…