Android 文件存储-SharePreferences存储

  不同于之前的文件存储方式,SharedPreferences是使用键值对来存储数据的。也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候,就可以通过这键来把相应的值取出来。而且SharedPreferences还支持多种不同方式的数据类型存储了如果存储的数据是整型,那么在读取时获得的也是整型;如果存储的数据是一个字符串的话,那么读取出来的数据就是字符串。

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值,第二个参数是默认值,即当传入的键找不到对应的值时,给一个默认值。




    
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mButtonSave = null;
    private Button mButtonLoad = null;
    private TextView mTextView = null;
    private SharedPreferences sharedPreferences = null;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonSave = (Button) findViewById(R.id.id_save);
        mButtonSave.setOnClickListener(this);
        mButtonLoad = (Button) findViewById(R.id.id_load);
        mButtonLoad.setOnClickListener(this);
        mTextView = (TextView) findViewById(R.id.id_textView);
        sharedPreferences = getSharedPreferences("pby", MODE_PRIVATE);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId())
        {
            case R.id.id_save:
            {
                save();
                break;
            }
            case R.id.id_load:
            {
                load();
                break;
            }
        }

    }
    private void save()
    {
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("name", "pby");
        editor.putInt("age", 21);
        editor.commit();
    }
    private void load()
    {
        String name = sharedPreferences.getString("name", "");
        int age = sharedPreferences.getInt("age", 0);
        mTextView.setText("名字:" + name + "\n年龄:" + age);
    }
}

效果示意图:


Android 文件存储-SharePreferences存储_第1张图片

你可能感兴趣的:(Android 文件存储-SharePreferences存储)