Android学习之SharePreferences轻量级数据存储

来源:互联网 发布:centos 安装opera 编辑:程序博客网 时间:2024/06/01 08:53

       SharePreferences 是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。只能在同一个包内使用,不能在不同的包之间使用,其实也就是说只能在创建它的应用中使用,其他应用无法使用。通过Context.getSharedPreferences方法获取SharedPreferences对象,参数分别为存储的文件名和存储模式。

        操作。SharePreferences存储数据是通过获取Editor编辑器对象来操作的。
            插入数据:调用Editor.putxxxx方法,两个参数分别为键和值。
            获取数据:调用Editor.getxxxx方法,两个参数分别为键和不存在指定键时的默认值。
            删除数据:调用Editor.remove方法,参数为指定的键。
            清空所有数据:调用Editor.clear方法
            上述所有方法调用都要执行Editor.commit方法来提交。

        以下的代码实现一个简单的Demo:

    

package com.scxh.android1502.preference;import android.content.Context;import android.content.SharedPreferences;import com.scxh.android1502.bean.User;/** * 1.获取SharedPreferences对象 2.写入对象数据 3.读取对象数据 4.清空 *  */public class SharedPreferencesHelper {private static final String PREFERENCE_NAME = "PREFERENCE_USER_FILE_KEY";private static final String ID = "ID";private static final String NAME = "NAME";private static final String PASSWORD = "PASSWORD";private SharedPreferences mSharedPreferences;private static SharedPreferencesHelper PREFERENCE_HELPER = null;public static SharedPreferencesHelper getInstancePreferencesHelper(Context context) {if (PREFERENCE_HELPER == null) {PREFERENCE_HELPER = new SharedPreferencesHelper(context);}return PREFERENCE_HELPER;}private SharedPreferencesHelper(Context context) {mSharedPreferences = context.getSharedPreferences(PREFERENCE_NAME,Context.MODE_PRIVATE);}/** * 写入user对象数据 * @param user */public void saveUserToPreferences(User user){SharedPreferences.Editor editor = mSharedPreferences.edit();editor.putInt(ID, user.getId());editor.putString(NAME, user.getName());editor.putString(PASSWORD, user.getPassWord());editor.commit();}/** * 读取user对象数据 * @return */public User getUserFromPreferences(){int id = mSharedPreferences.getInt(ID, 0);String name = mSharedPreferences.getString(NAME, "");String passWord = mSharedPreferences.getString(PASSWORD, "");User user = new User();user.setId(id);user.setName(name);user.setPassWord(passWord);return user;}/** * 清空数据 */public void clear(){SharedPreferences.Editor editor = mSharedPreferences.edit();editor.clear();editor.commit();}}


 

package com.scxh.android1502.preference;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import com.scxh.android1502.R;import com.scxh.android1502.bean.User;public class SharePreferenceActivity extends Activity {private EditText mUserNameEdit, mPassWordEdit;private Button mConfirmBtn;private static final String PREFERENCE_NAME = "com.scxh.android1502_PREFERENCE_USER_FILE_KEY";private SharedPreferences mPreference;private SharedPreferencesHelper mSharedPreferencesHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_preference1_layout);mUserNameEdit = (EditText) findViewById(R.id.preference_name_edit);mPassWordEdit = (EditText) findViewById(R.id.preference_password_edit);mConfirmBtn = (Button) findViewById(R.id.preference_comfirm_btn);mSharedPreferencesHelper = SharedPreferencesHelper.getInstancePreferencesHelper(this);mConfirmBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String name = mUserNameEdit.getText().toString();String passWord = mPassWordEdit.getText().toString();User user = new User();user.setName(name);user.setPassWord(passWord);mSharedPreferencesHelper.saveUserToPreferences(user);}});User user = mSharedPreferencesHelper.getUserFromPreferences();if(!user.getName().equals("")){mUserNameEdit.setText(user.getName());}if(!user.getPassWord().equals("")){mPassWordEdit.setText(user.getName());}}/** * 学习PreFerence简单使用 */public void learnPrimaryPreference() {// 获取SharedPreferences对象mPreference = getSharedPreferences(PREFERENCE_NAME, MODE_PRIVATE);mConfirmBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 写数据到sharepreferenceSharedPreferences.Editor editor = mPreference.edit();editor.putString("USER_NAME", mUserNameEdit.getText().toString());editor.commit();}});// 从sharepreference读取数据String value = mPreference.getString("USER_NAME", "");if (!value.equals("")) {mUserNameEdit.setText(value);}}}


 

0 0
原创粉丝点击