SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据。
实现SharedPreferences存储的步骤如下:
(1)获取SharedPreferences对象
(2)利用edit()方法获取Editor对象。
(3)通过Editor对象存储key-value键值对数据。
(4)通过commit()方法提交数据。
实现代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical"> 6 7 <Button 8 android:id="@+id/btn1" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="保存SharedPreferences对象数据" /> 12 13 <Button 14 android:id="@+id/btn2" 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:text="读取SharedPreferences对象数据" /> 18 19 </LinearLayout>
1 package com.example.sharedpreferencesdemo; 2 3 import android.app.Activity; 4 import android.content.SharedPreferences; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.Toast; 9 10 public class MainActivity extends Activity { 11 12 private Button btnsava; 13 private Button btnread; 14 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_main); 19 20 btnsava = (Button) findViewById(R.id.btn1); 21 btnread = (Button) findViewById(R.id.btn2); 22 23 btnsava.setOnClickListener(new View.OnClickListener() { 24 25 @Override 26 public void onClick(View v) { 27 // 实例化SharedPreferences对象(第一步) 28 SharedPreferences mySharedPreferences = getSharedPreferences( 29 "test", Activity.MODE_PRIVATE); 30 31 // 实例化SharedPreferences.Editor对象(第二步) 32 SharedPreferences.Editor editor = mySharedPreferences.edit(); 33 34 // 用putString的方法保存数据 35 editor.putString("name", "pig"); 36 editor.putString("habit", "sleep"); 37 38 // 提交当前数据 39 editor.commit(); 40 // 使用toast信息提示框提示成功写入数据 41 Toast.makeText(getApplicationContext(), 42 "数据成功写入SharedPreferences!", Toast.LENGTH_LONG).show(); 43 44 } 45 }); 46 47 btnread.setOnClickListener(new View.OnClickListener() { 48 49 @Override 50 public void onClick(View v) { 51 SharedPreferences sharedPreferences = getSharedPreferences( 52 "test", Activity.MODE_PRIVATE); 53 54 // 使用getString方法获得value,注意第2个参数是value的默认值 55 String name = sharedPreferences.getString("name", ""); 56 String habit = sharedPreferences.getString("habit", ""); 57 58 // 使用toast信息提示框显示信息 59 Toast.makeText( 60 getApplicationContext(), 61 "读取数据如下:" + " " + "name:" + name + " " + "habit:" 62 + habit, Toast.LENGTH_LONG).show(); 63 64 } 65 }); 66 } 67 }
SharedPreferences将会把这些数据保存在test.xml文件中,可以在手机内存(部分手机要root)/data/data/<package name>/shared_prefs目录下看到.
运行效果: