zoukankan      html  css  js  c++  java
  • 004_04SharedPreferences

    SharedPreferences的简介

      SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。

    实现SharedPreferences存储的步骤如下:

      1、根据Context获取SharedPreferences对象

      2、利用edit()方法获取Editor对象。

      3、通过Editor对象存储key-value键值对数据。

      4、通过commit()方法提交数据

    获取SharedPreferences的两种方式:
      1、调用Context对象的getSharedPreferences()方法
      2、调用Activity对象的getPreferences()方法
      
    两种方式的区别:
      调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
      调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

    SharedPreferences的四种操作模式:

      Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

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

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

     

     1 package com.example.sharedpref;
     2 
     3 import android.app.Activity;
     4 import android.content.SharedPreferences;
     5 import android.content.SharedPreferences.Editor;
     6 import android.os.Bundle;
     7 import android.view.Menu;
     8 import android.view.MenuItem;
     9 import android.widget.Toast;
    10 
    11 public class MainActivity extends Activity {
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.activity_main);
    17         
    18         //savetoSharedPreferences();
    19         
    20         readfromSharedPreferences();
    21         
    22     }
    23 
    24     private void readfromSharedPreferences() {
    25         // TODO Auto-generated method stub
    26         
    27         //1)打开名为information的配置文件
    28         SharedPreferences sharedPreferences = getSharedPreferences("infomation", 0);
    29         //2)获取数据
    30         boolean autostart= sharedPreferences.getBoolean("autostart", true) ;
    31         float autoclose =  sharedPreferences.getFloat("autoclose", 0);
    32         String nickname = sharedPreferences.getString("nickname", "");
    33         
    34         Toast.makeText(this, nickname+","+autostart+","+autoclose, 1).show();
    35     }
    36 
    37     private void savetoSharedPreferences() {
    38         //1.获取sharedPreferences
    39         SharedPreferences sp = getSharedPreferences("infomation", MODE_PRIVATE);
    40          //2.获取editor对象
    41         Editor editor = sp.edit();
    42         //3.使用editor进行写你需要的数据到sp里面
    43         editor.putBoolean("autostart", false);
    44         editor.putFloat("autoclose", 1000.0f);
    45         editor.putString("nickname", "hellokitty");
    46         
    47         //4.将我们写入的数据保存到文件中。
    48         editor.commit();
    49     }
    50 }
    物随心转,境由心造,一切烦恼皆由心生。
  • 相关阅读:
    【JLOI 2015】城池攻占
    【BalticOI 2004】Sequence
    罗马游戏
    《STL源码剖析》STL迭代器分类
    《Effective C++》模版与泛型编程
    《Effective C++》继承与面向对象设计
    《Effective C++》实现 章节
    [C++]const_cast,dynamic_cast,reinterpret_cast,static_cast转型
    [C++]default constructor默认构造函数
    [C++]union联合体总结
  • 原文地址:https://www.cnblogs.com/woodrow2015/p/4515748.html
Copyright © 2011-2022 走看看