android数据存储(二)之SharedPreference存储

1.定义:SharedPrefences是使用键值对的方式来存储数据的。支持多种不同的数据类型存储。

2.将数据存储到SharedPreferences中

    2.1要使用SharedPreferences来存储数据,首先要获取到SharedPreferences对象,获取方式主要有三种

    1>Context类中的getSharedPreferences对象

        此方法接受两个参数,第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则创建一个

        SharedPreferences文件都存在/data/data/<package name>/shared_prefs/目录下的。第二个参数用于指定操作

        模式,目前只有一种模式可选,也是默认的操作模式。和直接传0是相同的,表示只有当前的程序才可以对这个

        SharedPreferences文件进行读写。

    2>Activity类中的getPrefences()

        只接收一个操作模式方法,因为此方法会自动将当前的活动的类名作为SharedPreferences的文件名。

    3>PreferenceManager类中的getDefaultPreferences()

        这是一个静态方法,它接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences

        文件。

  2.2得到SharedPreferences对象之后,就可以向SharedPreferences文件中存储数据了,主要分为三步:

       1>调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Edit对象。

       2>向SharedPreferences.Editor对象中添加数据。

       3>调用apply()方法将添加的数据提交,从而完成数据存储操作。

  实例代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Button btn=findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferences.Editor editor=getSharedPreferences
                        ("data",MODE_PRIVATE).edit();
                editor.putString("name","Tom");
                editor.putInt("age",20);
                editor.putBoolean("married",false);
                editor.apply();
            }
        });
    }
}

3.从SharedPreferences中读取数据

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Button btn=findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferences pref=getSharedPreferences
                        ("data",MODE_PRIVATE);
                String name=pref.getString("name","");
                int age=pref.getInt("age",0);
                boolean married=pref.getBoolean("married",false);
            }
        });
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章