// 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%')
}
}