【使用首选项实现用户名密码保存获取】
打开src/main/ets/entryability路径下的EntryAbility.ts文件
在
export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
下边添加内容:
// 获取首选项实例对象,然后将实例对象全局处理,这样其他文件可以直接使用 preferences.getPreferences(this.context,'account') .then(preference=>{ // globalThis设置全局变量preference,让这个变量等于上边那个preference // 注意:这两个preference不是一个 globalThis.preference=preference console.log("加载成功"); }) // 加载不成功catch .catch(reason=>{ console.log(reason) })
打开pages文件夹下的index.ets文件:
import preferences from '@ohos.data.preferences' import router from '@ohos.router' @Entry @Component struct Index { @State username: string='' @State password: string='' pref: preferences.Preferences onPageShow(){ this.pref=globalThis.preference // 获取用户名跟密码,如果获取不到那么为空 this.pref.get('username','') .then(value=>{ this.username=value.toString() }) this.pref.get('password','') .then(value=>{ this.password=value.toString() }) }
build() { Row() { Column() { TextInput({placeholder:'请输入用户名',text:this.username}) .onChange(value=>{ this.username=value }) TextInput({placeholder:'请输入密码',text:this.password}) .onChange(value=>{ this.password=value }) Button('登录') .onClick(()=>{ this.pref.put('username',this.username) this.pref.put('password',this.password) this.pref.flush() router.pushUrl({url:'pages/Page2'}) })
} .width('100%') } .height('100%') } }
实际效果图: