且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android四个存储数据的SharedPreferences

更新时间:2022-08-17 18:05:54

  除了SQLite外部数据库。SharedPreferences它是一个轻量级的数据存储,其本质是基于XML文件存储key-value键值数据,通过定期用它来存储一些简单的配置信息。它的存储位置/data/data/< >/shared_prefs文件夹下。SharedPreferences对象本身仅仅能获取数据而不支持存储和改动,存储改动是通过Editor对象实现。实现SharedPreferences存储的过程例如以下:

  一、依据Context获取SharedPreferences对象

  二、利用edit()方法获取Editor对象。

  三、通过Editor对象存储key-value键值对数据。

  四、通过commit()方法提交数据。

 

以下是用SharedPreferences存储数据的一个案例:

Android四个存储数据的SharedPreferences

点击开启开启WiFi。设置进度条,保存状态,下次打开此程序,将显示上次保存的状态。

核心code例如以下:


*/ //sharedPreferences存储数据的步骤: //1.依据context获取SharedPreferences对象 final SharedPreferences preferences=MainActivity.this.getSharedPreferences("setting",MODE_PRIVATE ); //点击发生状态改变的时候。调用对应的方法 checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //2.通过SharedPreferences获取editor对象(对数据存储改动的对象) Editor editor=preferences.edit(); //3.通过editor对象存储key-value键值对数据 editor.putBoolean("wifi", isChecked); //4.通过commit方法提交数据 editor.commit(); } }); //当点开当前页面的时候,从preferences中获取当前的的wifi开启状态 Boolean boolean1 = preferences.getBoolean("wifi", false); checkBox.setChecked(boolean1); //当seekbar在移动的时候对其做一个监听 this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { // 进度条停止的时候 } @Override public void onStartTrackingTouch(SeekBar seekBar) { // 进度条開始移动 } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 进度条运动后(在移动) Editor editor=preferences.edit(); editor.putInt("seek", progress); editor.commit(); } }); int progress=preferences.getInt("seek", 0); this.seekBar.setProgress(progress); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }










本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5044254.html,如需转载请自行联系原作者