SharedPreferences详解(存储、读取及代码)

来源:互联网 发布:微店跟淘宝有什么区别 编辑:程序博客网 时间:2024/06/06 15:40

SharedPreferences是通过键值对的方式来存储数据的。每当保存一条新的数据时需要给数据一个对应的键值,所以当要调用数据时就可以通过键值来调用数据。
SharedPreferences支持多种不同的数据类型存储,如果存储的数据类型为整型,那么读取的数据类型就是整型。

想要使用SharedPreferences存储数据,先要获得它的对象,有3种方法:

1、Context类中的getSharedPreferences()方法:
getSharedPreferences(String, int) 第一个参数为文件名称,第二个参数参数指定操作模式(MODE_PRIVATE(默认,只有当前应用可进行读写数据) 和 MODE_MULTI_PROCESS(用于有多个进程对同一个SharedPreferences文件读取的情况))。

2、Activity类中的getPreferences()方法:
这个方法只有一个参数,就是第一个getSharedPreferences()方法的第二个参数,因为使用这个方法时会自动将当前活动的类名作为SharedPreferences的文件名。

3、PreferenceManager类中的getDefaultSharedPreferences()方法:
这个一个静态方法,接受一个Context参数,自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。

得到了SharedPreferences对象后,就开始向SharedPreferences文件中存储数据。分3步:

1、调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象;
2、向SharedPreferences.Editor对象中添加数据,添加一个布尔型就是putBooleam(),添加一个字符串就是putString(),第一个参数都是键值,第二个参数是数据,其他类型以此类推;
3、调用commit()方法将添加的数据提交,从而完成数据存储操作。

public class MainActivity extends Activity {    private Button btn_save;    private EditText ed_input;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 实例化        btn_save = (Button) findViewById(R.id.btn_save);        ed_input = (EditText) findViewById(R.id.ed_input);        tv = (TextView) findViewById(R.id.tv);              // 获取SharedPreferences用于读取数据        SharedPreferences getdataPreferences = getSharedPreferences("mydata",                MODE_PRIVATE);        // 读取数据,第一个参数是键值,第二个参数是找不到对应键值时的返回值        String getdata = getdataPreferences.getString("input", "空");        // 将读取到的值显示到TextView上        tv.setText(getdata);        btn_save.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // 获取EditText中输入的数据                String data = ed_input.getText().toString();                // 1、获取一个SharedPreferences.Editor对象                SharedPreferences.Editor spEditor = getSharedPreferences(                        "mydata", MODE_PRIVATE).edit();                // 2、向SharedPreferences.Editor对象中添加数据                spEditor.putString("input", data);                // 3、将添加的数据提交                spEditor.commit();                // 提示保存成功                Toast.makeText(MainActivity.this, "success", 1000).show();            }        });    }}

运行下程序,在EditText中输入数据,点击保存按钮,退出程序,再打开,TextView显示刚刚保存的数据。

0 0
原创粉丝点击