栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Android的SharedPreferences的用法和封装自己的配置文件管理工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Android的SharedPreferences的用法和封装自己的配置文件管理工具类

这几年经历了太多事情,决定回归技术,深耕一下,这次要有深度+数学

一般的App都需要使用外存存储一些用户的信息,如用户名,密码,是否登录,token等来判断用户是否需要重新登录,这里提供一种方式,本地存储配置文件的方式

Android的工具类SharedPreferences,这个类本质是个接口类,对应底层文件读写,故内部没有实现

为了方便不用每次都写一下这个类,我准备直接封装一个自己的配置文件读写类MSharedPreferences,实现如下,内部使用静态方法和类定义,方便直接获取

代码如下:


public class MSharedPreferences {

    private static MSharedPreferences mSharedPreferences;
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    private Context context;
    private String str;

    public static MSharedPreferences getmSharedPreferences() {
        if (mSharedPreferences == null) {
            mSharedPreferences = new MSharedPreferences();
        }
        return mSharedPreferences;
    }

    
    public void init(Context context){

        sharedPreferences = context.getSharedPreferences(MyConfig.APP_CONF, Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
    }

    
    public void delete(Context context)  {
        str = context.getPackageName();
        Log.e("guanzedong", str);
        //这里实质上只是创建了个实例,并不是个文件
        // file.createNewFile();当且仅当文件不存在时创建,否则会抛出异常
        //public boolean createNewFile() throws IOException
        File file = new File("/data/data/" + context.getPackageName().toString() + "/shared_prefs", MyConfig.APP_CONF);
        if(file.exists()){
            file.delete();
            Toast.makeText(context, "删除配置文件成功!!!", Toast.LENGTH_SHORT).show();
        }

    }

    public void clear(Context context){
        if(editor != null){
            editor.clear().commit();
            Toast.makeText(context, "你好", Toast.LENGTH_SHORT).show();
        }
    }

    public void putString(String key, String value){
        editor.putString(key,value);
    }
    public void putInt(String key, int value){
        editor.putInt(key,value);
    }
    public void putLong(String key, long value){editor.putLong(key,value);}
    public void putDouble(String key, double value){editor.putFloat(key, (float) value);}
    public void putBoolean(String key, boolean value){editor.putBoolean(key,value);}
    public void commit(){
        editor.commit();
    }
    public String getString(String key){
        return sharedPreferences.getString(key,"");
    }
    public int getInt(String key){return sharedPreferences.getInt(key,-1);    }
    public long getLong(String key){return sharedPreferences.getLong(key,0);}
    public float getFloat(String key){return sharedPreferences.getFloat(key,0);}
    public boolean getBoolean(String key){return sharedPreferences.getBoolean(key,false);}



}



实现自己的配置文件读写类之后,直接在界面内直接调用即可

mSharedPreferences = MSharedPreferences.getmSharedPreferences();
        mSharedPreferences.init(this);
        mSharedPreferences.clear(this);

进行读取操作即可


MyConfig.sellername = mSharedPreferences.getString(MyConfig.SELLERNAME);
        MyConfig.sellerpwd =  mSharedPreferences.getString(MyConfig.PASSWORD);
        MyConfig.is_login = mSharedPreferences.getBoolean(MyConfig.IS_LOGIN);


mSharedPreferences.putString(MyConfig.SELLERNAME, MyConfig.sellername);
                   mSharedPreferences.putString(MyConfig.PASSWORD, MyConfig.sellerpwd);
                mSharedPreferences.putBoolean(MyConfig.IS_LOGIN, MyConfig.is_login);
                mSharedPreferences.commit();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号