当前位置: 代码迷 >> Android >> Android采取SharedPreferences保存数据(转)
  详细解决方案

Android采取SharedPreferences保存数据(转)

热度:42   发布时间:2016-05-01 20:50:40.0
Android采用SharedPreferences保存数据(转)

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     @Override20     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.xml31         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);//将数据写入xml42                 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         <TextView12             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         <EditText19             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     <LinearLayout29         android:layout_width="match_parent"30         android:layout_height="wrap_content" >31 32         <TextView33             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         <EditText40             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     <LinearLayout47         android:layout_width="match_parent"48         android:layout_height="wrap_content" >49 50         <TextView51             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         <EditText58             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     <LinearLayout65         android:layout_width="match_parent"66         android:layout_height="wrap_content" >67 68         <Button69             android:id="@+id/buttonWrite"70             android:layout_width="wrap_content"71             android:layout_height="wrap_content"72             android:text="写入" />73 74         <Button75             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方法来提交。

  相关解决方案