跳至主要內容

SharePreference的使用


android开发基础之SharePreference的使用

u26019879501404733844fm27gp0.jpg
u26019879501404733844fm27gp0.jpg

在android里头,可以分为内部存储和外部存储。

外部存储也就是SD卡存储,或者说是扩展卡存储

而内部存储的则是/data/data/包名/files、caches、databases、shared_prefs

它们用于存储文件,存储缓存,存储数据库,也用于存储设置的内容,也就是偏好啦!

这节课我们是学习怎么使用sharePreference来保存数据。

sharepreference一般用于储存配置信息,比如说是否是第一次启动呀,这个应用的id号,用户的账号和加密以后的密等等

SharePreference

一般用于保存这个偏好设置,比如说我们设置里面的条目。

sharepreference使用步骤

  • 第一步:拿到这个SharePreference. mSharedPreferences = this.getSharedPreferences(“settings_info”, MODE_PRIVATE); 这里面这个this指的是上下文Context,在视频中我们是在Activity里面所以直接使用this。因为这Activity间接地继承了Context。
  • 第二步:进入编辑模式 SharedPreferences.Editor edit = mSharedPreferences.edit();

拿这个编辑器

  • 第三步:保存数据 edit.putBoolean(“state”, isChecked);

保存要保存的数据,类型有boolean,有String,float,StringSet,int.

  • 第四步:提交编辑器 edit.commit(); 经过这四个步骤,我们就可以把数据保存到SharePreference里了!
 /**

  * Created by TrillGates on 17/9/3.

  * God bless my code!

  */

  public class PreferenceDemoActivity extends Activity implements CompoundButton.OnCheckedChangeListener {

      private static final String TAG = "PreferenceDemoActivity";
      private Switch mIsAllowUnknownSource;
      private SharedPreferences mSharedPreferences;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_preference_demo);
          //找到控件
          mIsAllowUnknownSource = (Switch) this.findViewById(R.id.is_allow_unknown_apps_sources_switch);
          mIsAllowUnknownSource.setOnCheckedChangeListener(this);
          mSharedPreferences = this.getSharedPreferences("settings_info", MODE_PRIVATE);
      }
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
          //我们在这里需要对数据进行保存
          Log.d(TAG, "current state == " + isChecked);
          SharedPreferences.Editor edit = mSharedPreferences.edit();
          edit.putBoolean("state", isChecked);
          edit.commit();
      }
  }

shareprefernece存储也是属于这个内部存储,它跟files/cache也是一样的,在/data/data/报名下/shared_prefs 以xml的文件形式保存起来。它有一个特点,内容保存都是是键值对的方式进行保存。

话不多说,看视频吧:

在线视频:

https://www.sunofbeach.net/c/1443881236287311874