• SharedPreferences的封装


    android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。有三种获取系统中保存的持久化数据的方式:

            1). public SharedPreferences getPreferences (int mode)
    通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。
            2). public SharedPreferences getSharedPreferences (String name, int mode)
    因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。
            3). public static SharedPreferences getDefaultSharedPreferences (Context context)
    PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。
            通过以上方式取得SharedPreferences后就可以对数据进行读取或者保存了。

     如下是一个SharedPreferences的简单操作

    package org.xml.demo.viewpager;
    
    import ogg.huanxin.huadong.R;
    import android.app.Activity;
    
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.view.Window;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    /*
     * 使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下: 
     */
    public class Login extends Activity {
        /** 定义登录姓名的编辑框 */
        private EditText ed_Name;
        /** 定义输入密码的编辑框 */
        private EditText ed_PassWord;
        /** 定义登录的按钮 当点击时跳转到其他的界面 */
        private Button loginButton;
        /** 定义个选择框点击时会记住密码 */
        private CheckBox cb_dian;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            super.setContentView(R.layout.login);
            ed_Name = (EditText) super.findViewById(R.id.ed_login_name);
            ed_PassWord = (EditText) super.findViewById(R.id.ed_login_password);
            loginButton = (Button) super.findViewById(R.id.bb_login_login);
            cb_dian = (CheckBox) super.findViewById(R.id.cb_login_dian);
    
            loginButton.setOnClickListener(new MyOnClickItem());
            /** 定义个方法当下次进来的时候会读取getSharedPreferences若有则将姓名和密码返回到界面上 */
            readLogin();
    
        }
    
        private class MyOnClickItem implements View.OnClickListener {
    
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if (cb_dian.isChecked()) {
                    BaoCuenLogin();
                    Toast.makeText(Login.this, "登陆成功", Toast.LENGTH_SHORT).show();
                }
                Intent it = new Intent(Login.this, DialogText.class);
                startActivity(it);
            }
    
        }
    
        /** 定义个方法当下次进来的时候会读取getSharedPreferences若有则将姓名和密码返回到界面上 */
        private void readLogin() {
            SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
            this.ed_Name.setText(sp.getString("name", ""));
            this.ed_PassWord.setText(sp.getString("password", ""));
        }
    
        /** 实现文件的保存 */
        private void BaoCuenLogin() {
            String name = ed_Name.getText().toString();
            String passWord = ed_PassWord.getText().toString();
            SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
            SharedPreferences.Editor ed = sp.edit();
            ed.putString("name", name);
            ed.putString("password", passWord);
            ed.commit();// 提交
        }
    
    }

    下面是对SharedPreferences的封装

    package com.item.test.util;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.util.Log;
    
    /**
     * 这个是SharedPreferences的封装
     * Created by Administrator on 
     */
    
    public class SPManager {
    
        private static SPManager spManager = null;
        private static SharedPreferences sp = null;
        private static SharedPreferences.Editor editor = null;
    
        private static final String SHARE_NAME = "info";//Preference文件名
    
        private SPManager(Context context) {
            sp = context.getSharedPreferences(SHARE_NAME, Context.MODE_PRIVATE);
            editor = sp.edit();
        }
    
        public static SPManager getInstance(Context context) {
            if (spManager == null || sp == null || editor == null) {
                spManager = new SPManager(context);
            }
            return spManager;
        }
    
        public void putInt(String key, int value) {
            editor.putInt(key, value);
            editor.commit();
        }
    
        public int getInt(String key, int defaultValue) {
            return sp.getInt(key, defaultValue);
        }
    
        public void putLong(String key, Long value) {
            editor.putLong(key, value);
            editor.commit();
        }
    
        public long getLong(String key, int defaultValue) {
            return sp.getLong(key, defaultValue);
        }
    
        public void putString(String key, String value) {
            editor.putString(key, value);
            editor.commit();
        }
    
        public String getString(String key, String defaultValue) {
            return sp.getString(key, defaultValue);
        }
    
        public void putFloat(String key, float value) {
            editor.putFloat(key, value);
            editor.commit();
        }
    
        public boolean isKeyExist(String key) {
            return sp.contains(key);
        }
    
        public float getFloat(String key, float defaultValue) {
            return sp.getFloat(key, defaultValue);
        }
    
        public void putBoolean(String key, boolean value) {
            editor.putBoolean(key, value);
            editor.commit();
        }
    
        public boolean getBoolean(String key, boolean defaultValue) {
            return sp.getBoolean(key, defaultValue);
        }
    
        public void remove(String key) {
            editor.remove(key);
            editor.commit();
        }
    }

     

  • 相关阅读:
    来自于一个问题的回答对自己的反思 php怎么发送邮件?发送邮件插件PHPMailer
    如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
    sass重构响应式unofficial‘s博客轻松适应移动端
    HTML5 audio元素如何使用js与jquery控制其事件
    javascript Uncaught ReferenceError: 方法名 is not defined
    JS下计算当前日期(当天)后N天出现NAN或者undefined的情况
    前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件环境下Ruby安装sass常见错误分析
    pycharm 语言配置
    基本动态集合
    windows下简单使用pip
  • 原文地址:https://www.cnblogs.com/wangfengdange/p/4992308.html
Copyright © 2020-2023  润新知