HarmonyOS鸿蒙 preferences (用户首选项)1

// 1.preferences (用户首选项)demo

//下面测试代码,不建议这样写

import { preferences } from '@kit.ArkData';

import { util } from '@kit.ArkTS';

import PreferencesUtil from '../util/PreferencesUtil';

import { hilog } from '@kit.PerformanceAnalysisKit';

import { common } from '@kit.AbilityKit';

import { BusinessError } from '@kit.BasicServicesKit';

let dataPreferences: preferences.Preferences;

// let preferenceTheme: preferences.Preferences | null = null;

const KEY_APP_FONT_SIZE = 'appFontSize';

const TAG = 'PreferencesUtil';

@Entry

@Component

export struct preferencesPage {

  @State key1: number = 0

  preference?: preferences.Preferences;

  private context = getContext(this) as common.UIAbilityContext;

  aboutToAppear(): void {

    //获取Preferences实例。不建议这么写,要写在入口文件EntryAbility

    this.getFontPreferences(this.context)

    this.key1 = this.getChangeFontSize()

  }

  getFontPreferences(context: Context) {

    this.preference = preferences.getPreferencesSync(context, { name: 'FontPreferences5' });

    hilog.info(0x0000, TAG, 'create success');

  }

  getChangeFontSize() {

    let fontSizeOffset: number = 0;

    fontSizeOffset = this.preference?.getSync(KEY_APP_FONT_SIZE, 0) as number;

    return fontSizeOffset;

  }

  saveChangeFontSize(fontSizeOffset: number) {

    this.preference?.putSync(KEY_APP_FONT_SIZE, fontSizeOffset);

    this.preference?.flush(

      (err: BusinessError) => {

        if (err) {

          hilog.error(0x0000, TAG, 'Failed to flush. code =' + err.code + ', message =' + err.message);

          return;

        }

        hilog.info(0x0000, TAG, 'Succeeded in flushing.');

      });

  }

  build() {

    Column({ space: 12 }) {

      Button('1.Preferences写入字段150').width('100%')

        .onClick(() => {

          this.saveChangeFontSize(150)

        })

      Button('2.Preferences读取数据').width('100%').onClick(() => {

        this.key1 = this.getChangeFontSize()

      })

      Text('3.preference=' + this.key1.toString()).width('100%')

    }

    .height('100%')

    .width('100%')

  }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容