zoukankan      html  css  js  c++  java
  • android开发之-软件设置保存-快速学会使用SharedPreferences篇-实测

    我们在设计软件的时候,需要记录软件设置的基本信息,那么怎么来保存他们呢?我们可以使用SharedPreferences。
     
    SharedPreferences是一个xml文件,用来存储软件的常规设置。例如:登陆框的用户名或用户自己的设置信息。
     
    SharedPreferences自动保存在data/data/package/shared_prefs目录下面。
     

                            效果图

    userInfo.xml便是我们设置的保存的文件。文件名称可以自己指定。
     
    那么怎么实现呢?下面我们一步一步来说:
    第一步:创建SharedPreferences:
    android为我们提供了或的方法,这个方法在有文件时,返回SharedPreferences对象,没有是在创建editor 后执行Editor.commit()是创建。
    原文:
    Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
    代码1:
    SharedPreferences preferences = getSharedPreferences("userInfo",Activity.MODE_PRIVATE);

    解释:getSharedPreferences第一个参数userInfo为文件名称,得到的就是userInfo.xml,可以自己起名。

                                                    第二个参数Activity.MODE_PRIVATE,是Activity创建文件时的权限,这里是私有的
    权限大全:

    Context.MODE_PRIVATE = 0x0000
    Context.MODE_WORLD_READABLE = 0x0001
    Context.MODE_WORLD_WRITEABLE = 0x0002
    Context.MODE_APPEND = 0x8000

    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

    MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

    如果希望文件被其他应用读和写,可以传入:
    openFileOutput("leigo.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

    第二步:初始化添加数据:

    代码2:

    //获得编辑器信息,这个编辑器想一个map,它是以key-values形式存在的。
    
    SharedPreferences.Editor edit=preferences.edit(); 
    
    //将值添加到编辑器中
    
      edit.putBoolean("isSendMsg", isSendMsg.isChecked());
    
      edit.putBoolean("isCall", isCall.isChecked());
    
      edit.commit();//注意在没有preferences的时候这里进行创建。
    

      

    添加完之后,我们打开文件可以看到存储的值。文件存储在data/data/package/shared_prefs下面, 如果你还不知道怎么查看本地手机文件请看这个android开发之-查看、编辑手机sqlite数据库文件-实测。

    第三步:获得SharedPreferences 中的值,显示在手机中。

    SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);
    
    //获得两个控件,用以展示。
    
      isSendMsg = (Switch) findViewById(R.id.isSendMessage);
    
      isCall = (Switch) findViewById(R.id.isCall);
    
      //将 preferences.getBoolean("isSendMsg", true)信息取出来,赋值给控件,getBoolean的第二个参数是,如果preferences中没有这个值默认的设置的值。
    
      isSendMsg.setChecked(preferences.getBoolean("isSendMsg", true));
    
      isCall.setChecked(preferences.getBoolean("isCall", false)); 
    

      

    好了,至此我们就学习完了怎么使用SharedPreferences了,另外应该注意在退出程序的时候记得保存信息,一般在onStop()方法中使用
    @Override
    
     protected void onStop() {
    
      super.onStop();
    
      //停止的时候自动保存信息
    
      SharedPreferences preferences=getSharedPreferences(PREFERENCES_NAME,Activity.MODE_PRIVATE);
    
      SharedPreferences.Editor edit=preferences.edit();
    
      edit.putBoolean("isSendMsg", isSendMsg.isChecked());
    
      edit.putBoolean("isCall", isCall.isChecked());
    
      edit.commit();
    
     }
    

      作为一个android初学者,第一次开博,错误之处难免,请大家多多包含,指教。

  • 相关阅读:
    LabVIEW(数据库连接)
    单片机之静态局部变量static
    LabVIEW(数据库自动编号)
    为什么大电容滤低频,小电容滤高频 ?(转载)
    电容、频率的一点小关系(项目有关)
    深入理解计算机系统 第三部分程序间的交互和通信
    深入理解计算机系统chapter9
    深入理解计算机系统chapter8
    深入理解计算机系统chapter7
    深入理解计算机系统chapter6
  • 原文地址:https://www.cnblogs.com/dava/p/3684586.html
Copyright © 2011-2022 走看看