sharedPreferences存储数据

sharedPreferences使用的是键值对的方式存储数据。

1.Android中三种获取sharedPreferences的方式

1)Context 类中的getSharedPreferences()方法,该方法接受,第一个参数用于指定SharedPreferences 文件的名称,第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE 和MODE_MULTI_PROCESS。

2)Activity 类中的getPreferences()方法,和上面的方法类似

3)PreferenceManager 类中的getDefaultSharedPreferences()方法 这是一个静态方法,它接收一个Context 参数。

 

获取sharedPreference之后,通过三步向其中添加数据

1.调用sharedPreference对象的edit()方法,获取SharedPreferences.Editor对象。

2.向Editor对象中添加数据。如,String类型数据用putString()方法。

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

获取sharedPreference中的数据的方法更加简单

1.获取sharedPreferens对象,

2.通过对象调用getString()方法,该方法传入两个参数,第一个参数是键值,第二个参数是该值得默认值。

 

现在代码实现:

界面直接写连个button,一个用于存储数据,一个用于取出数据。

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 3     android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
 4     android:paddingRight="@dimen/activity_horizontal_margin"
 5     android:paddingTop="@dimen/activity_vertical_margin"
 6     android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
 7     android:orientation="vertical"
 8     >
 9 
10     
11     <Button
12         android:layout_width="match_parent"
13         android:layout_height="wrap_content"
14         android:id="@+id/save_data"
15         android:text="save data"
16         />
17     <Button
18         android:layout_width="match_parent"
19         android:layout_height="wrap_content"
20         android:id="@+id/get_date"
21         android:text="get date"
22 
23         />
24     <TextView
25         android:layout_width="match_parent"
26         android:layout_height="wrap_content"
27         android:lines="2"
28         android:id="@+id/text"
29         android:hint="result is here"
30         />
31 </LinearLayout>
xml

接着在.java文件中添加如下代码

 1 package com.example.yqt.sharedpreferencestest;
 2 
 3 import android.content.SharedPreferences;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.os.Bundle;
 6 import android.util.Log;
 7 import android.view.Menu;
 8 import android.view.MenuItem;
 9 import android.view.View;
10 import android.widget.Button;
11 import android.widget.TextView;
12 
13 public class MainActivity extends AppCompatActivity {
14 
15 
16     Button savadata;
17     Button getdata;
18 
19     TextView text;
20 
21 
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_main);
26 
27         savadata = (Button)findViewById(R.id.save_data);
28         savadata.setOnClickListener(new View.OnClickListener() {
29             @Override
30             public void onClick(View v) {
31                 SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
32                 editor.putString("name","Tom");
33                 editor.putInt("age", 25);
34                 editor.putBoolean("married", false);
35                 editor.commit();
36             }
37         });
38 
39         text = (TextView)findViewById(R.id.text);
40 
41         getdata = (Button)findViewById(R.id.get_date);
42         getdata.setOnClickListener(new View.OnClickListener() {
43             @Override
44             public void onClick(View v) {
45                 SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
46                 String name = pref.getString("name", "");
47                 int age = pref.getInt("age", 0);
48                 Boolean married = pref.getBoolean("married",false);
49                 Log.d("MainActivity","name is "+name);
50                 Log.d("MainActivity","age is "+age);
51                 Log.d("MainActivity","married is "+married);
52                 text.setText("name "+name+" age:"+age+" married:"+married);
53             }
54         });
55 
56 
57     }
58 
59 }
MainActivity.java

最后运行可以看到如下结果

 

 

这是保持后的数据导出的结果

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="name">Tom</string>
    <boolean name="married" value="false" />
    <int name="age" value="25" />
</map>
data

 

posted on 2015-12-26 19:00  麦冬  阅读(500)  评论(0编辑  收藏  举报