美文网首页菜鸟Android学习累积
安卓数据文件储存之 SharePreferences

安卓数据文件储存之 SharePreferences

作者: devleoper_rui | 来源:发表于2018-02-28 08:01 被阅读17次

基本概念

1.将数据存储到SharedPreferences中

要想使用SharedPreferences来存储数据,首先需要获取到SharePreferences对象。Android中主要提供三种方式用于得到SharedPreferences的对象

(1)Context类中的getSharedPreferences()方法

getSharedPreferences(String name, int mode),此方法接收两个参数。第一个参数是指定SharedPreferences的文件名称,如果指定的文件不存在的话,则会创建一个SharedPreferences文件,SharedPreferences文件都是存放在/data/data/<应用包名>/share_prefs/目录下;第二个参数指定操作模式,目前只有MODE_PRIVATE模式,其余的模式由于过于危险,因此被废弃了。

(2)Activity类中的getSharedPreferences()方法

这个方法和Context中的getSharePreferences()方法相似,不过它只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类型作为SharePreferences的文件名。

(3)PreferencesManager类中的getDefaultSharedPreferences()方法

这是一个静态方法,它接收一个Context类型的参数,并且自动调用当前应用程序的包名作为前缀来命名SharedPreferences文件。
 emsp;获得SharePreferences的对象后,就可以向SharedPreferences文件中来存储数据了,主要分为3步实现:

(1)调用SharePreferences对象的edit()方法来获取一个SharePreferences.Editor对象。

(2)向SharedPreferences.Editor对象中添加数据,比如添加一个boolean类型的数据,调用putBoolean()方法,添加一个字符串,调用putString()方法。

(3)调用apply()方法或者是commit()方法来对添加的数据进行提交。

2.从SharePreferences中读取数据

SharedPreferences对象中提供一系列的get方法,用来存储的数据进行读取,每一中get方法对相应SharePreferences.Editor的一种put方法。这些get方法都接收两个参数,第一个参数是数据对应的key值,第二个参数是默认值,即当传入的键找不到对应的值时,给一个默认值

功能实践

新建一个SharePreferencesTest 安卓工程
image.png

实现布局文件,先找到 activity_main.xml文件,然后布局 两个按钮控件 和一个文本控件


image.png

布局代码
<Button
android:id="@+id/save_buttion"
android:text="write_save_Data"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

<Button
    android:id="@+id/read_buttion"
    android:text="read_Data"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<TextView
    android:id="@+id/text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="显示读取的数据"/>

接下在MainActivity.java里面实现读写文件的代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

public  static  final String TAG = "MainActivity";
private Button save_button;
private Button read_button;
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//通过控件id得到布局的控件
save_button = (Button) findViewById(R.id.save_buttion);
save_button.setOnClickListener(this);
read_button = (Button) findViewById(R.id.read_buttion);
read_button.setOnClickListener(this);

    textView = (TextView) findViewById(R.id.text_view);
    textView.setOnClickListener(this);
}

//按钮控件的点击事件
@Override
public void onClick(View v) {

    switch (v.getId())
    {

        case  R.id.save_buttion:
        {
            SharedPreferences.Editor editor  = getSharedPreferences("savedata",MODE_PRIVATE).edit();//初始化一个SharedPreferences对象指定文件名称

// 添加要储存的数据
editor.putString("name","zhangsan");
editor.putInt("age",1234);
editor.putBoolean("single",false);
editor.putString("education","研究生");
editor.apply();//提交

        }
        break;
        case  R.id.read_buttion:
        {
            SharedPreferences  sharedPref  = getSharedPreferences("savedata",MODE_PRIVATE);//指定文件名称

                                    String name =  sharedPref.getString("name","");
                                     String education =  sharedPref.getString("education","");
                                     int age = sharedPref.getInt("age",0);
                                     boolean single = sharedPref.getBoolean("single",true);

            Log.d(TAG,"name is " + name);
            Log.d(TAG,"education is " + education);
            Log.d(TAG,"age is " + age+"\n"+"single is "+ single);
            Log.d(TAG,"age is " + age);

//显示在文本控件上
textView.setText(name+education+age+single);

        }
        break;
        default:
            break;
    }
}

}

数据输出截图


image.png

存储的文件可以通过模拟器工具查看


image.png

相关文章

  • 安卓数据文件储存之 SharePreferences

    基本概念 1.将数据存储到SharedPreferences中 要想使用SharedPreferences来存储数...

  • 安卓储存

    先分清楚几个概念,内存,内部存储,外部储存。 内存: 即运行内存,4g,8g的那个,是指手机运行程序时占用的内存,...

  • Android:储存方式之SharePreferences

    需求:每次打开app 检测剪切板内容,进行搜索,如果用户选择今日不再搜索剪切板中的这个标题,缓存到本地进行拦截; ...

  • 安卓储存分析

    安卓储存主要有三种1.RAM2.ROM3.SD(另外含有USB storage) 一、RAM RAM:手机...

  • Android:数据的持久化

    我在这里只列出我熟悉常用的四种:1.Sharepreferences;2,内部储存;3,外部储存4.数据库储存。还...

  • 安卓开发零基础入门系列

    本文由安卓开发007出品 ## 1.1 安卓发展历程## 1.2 安卓开发前景展望## 1.3 安卓开发入门之安装...

  • Android mkdirs 无法创建目录

    安卓储存目录:/storage/emulated/0/your_dir资料说6.0才需要权限。可我的5.1依然无法...

  • 数据库笔记1

    目录介绍: bin目录,储存可执行文件 data目录,储存数据文件 docs,文档 include目录,存储包含的...

  • keytool 管理sha1

    有几个注意的点: keystore是Androidstudio用来储存安卓项目key的文件,一般后缀为.jks。有...

  • Android 外部存储与内部存储详解

    一、前言 在 Android 本地数据存储之 SharePreferences 存储[https://juejin...

网友评论

    本文标题:安卓数据文件储存之 SharePreferences

    本文链接:https://www.haomeiwen.com/subject/zzwvxftx.html