Android采用SharedPreferences保存数据
使用SharedPreferences在程序的数据空间中生成xml文档来保存数据
基本操作:
1 package com.hu.data; 2 3 import android.app.Activity; 4 import android.content.SharedPreferences; 5 import android.content.SharedPreferences.Editor; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button; 10 import android.widget.EditText; 11 12 public class ShDemoActivity extends Activity { 13 14 private EditText etName,etAge,etScore; 15 private Button btWrite,btRead; 16 private SharedPreferences sharedPrefrences; 17 private Editor editor; 18 19 @Override 20 public void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.main); 23 24 etName = (EditText) findViewById(R.id.editTextName);//得到控件 25 etAge = (EditText) findViewById(R.id.editTextAge); 26 etScore = (EditText) findViewById(R.id.editTextScore); 27 btWrite = (Button) findViewById(R.id.buttonWrite); 28 btRead = (Button) findViewById(R.id.buttonRead); 29 30 sharedPrefrences = this.getSharedPreferences("user", MODE_WORLD_READABLE);//得到SharedPreferences,会生成user.xml 31 editor = sharedPrefrences.edit(); 32 33 btWrite.setOnClickListener(new OnClickListener() {//写入按钮事件 34 35 public void onClick(View arg0) { 36 String name = etName.getText().toString(); 37 int age = Integer.parseInt(etAge.getText().toString()); 38 float score = Float.parseFloat(etScore.getText().toString());//获取用户输入数据 39 editor.putString("name", name); 40 editor.putInt("age", age); 41 editor.putFloat("score", score);//将数据写入xml 42 editor.commit();//提交 43 } 44 }); 45 46 btRead.setOnClickListener(new OnClickListener() {//读出按钮事件 47 48 public void onClick(View v) { 49 String name = sharedPrefrences.getString("name", null); 50 int age = sharedPrefrences.getInt("age", 0); 51 float score = sharedPrefrences.getFloat("score", 60.0f);//将数据读出 52 etName.setText(name); 53 etAge.setText(Integer.toString(age)); 54 etScore.setText(Float.toString(score));//显示数据 55 } 56 }); 57 58 } 59 }
布局文件为:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <LinearLayout 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" > 10 11 <TextView 12 android:id="@+id/textView1" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:text="姓名:" 16 android:textAppearance="?android:attr/textAppearanceLarge" /> 17 18 <EditText 19 android:id="@+id/editTextName" 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:layout_weight="1" > 23 24 <requestFocus /> 25 </EditText> 26 </LinearLayout> 27 28 <LinearLayout 29 android:layout_width="match_parent" 30 android:layout_height="wrap_content" > 31 32 <TextView 33 android:id="@+id/textView2" 34 android:layout_width="wrap_content" 35 android:layout_height="wrap_content" 36 android:text="年龄:" 37 android:textAppearance="?android:attr/textAppearanceLarge" /> 38 39 <EditText 40 android:id="@+id/editTextAge" 41 android:layout_width="wrap_content" 42 android:layout_height="wrap_content" 43 android:layout_weight="1" /> 44 </LinearLayout> 45 46 <LinearLayout 47 android:layout_width="match_parent" 48 android:layout_height="wrap_content" > 49 50 <TextView 51 android:id="@+id/textView3" 52 android:layout_width="wrap_content" 53 android:layout_height="wrap_content" 54 android:text="分数:" 55 android:textAppearance="?android:attr/textAppearanceLarge" /> 56 57 <EditText 58 android:id="@+id/editTextScore" 59 android:layout_width="wrap_content" 60 android:layout_height="wrap_content" 61 android:layout_weight="1" /> 62 </LinearLayout> 63 64 <LinearLayout 65 android:layout_width="match_parent" 66 android:layout_height="wrap_content" > 67 68 <Button 69 android:id="@+id/buttonWrite" 70 android:layout_width="wrap_content" 71 android:layout_height="wrap_content" 72 android:text="写入" /> 73 74 <Button 75 android:id="@+id/buttonRead" 76 android:layout_width="wrap_content" 77 android:layout_height="wrap_content" 78 android:text="读出" /> 79 </LinearLayout> 80 81 </LinearLayout>
操作界面:
保存的内容为:
1 <?xml version='1.0' encoding='utf-8' standalone='yes' ?> 2 <map> 3 <float name="score" value="89.22" /> 4 <string name="name">Steve</string> 5 <int name="age" value="21" /> 6 </map>
SharePreferences存储数据是通过获取Editor编辑器对象来操作的。
插入数据:
调用Editor.putxxxx方法,两个参数分别为键和值。
获取数据:
调用Editor.getxxxx方法,两个参数分别为键和不存在指定键时的默认值。
删除数据:
调用Editor.remove方法,参数为指定的键。
清空所有数据:
调用Editor.clear方法
上述所有方法调用都要执行Editor.commit方法来提交。