开发者社区> 听着music睡> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

安卓开发_数据存储技术_SharedPreferences类

简介: SharedPreferences类 供开发人员保存和获取基本数据类型的键值对。 该类主要用于基本类型,例如:booleans,ints,longs,strings。在应用程序结束后,数据仍旧会保存。
+关注继续查看

SharedPreferences类 供开发人员保存和获取基本数据类型的键值对。

该类主要用于基本类型,例如:booleans,ints,longs,strings。在应用程序结束后,数据仍旧会保存。

有两种方式可以获得SharedPreferences对象

1、getSharedPreferences():  如果需要多个使用名称来区分的共享文件,则可以使用该方法,其第一个参数就是共享文件的名称。

                对于使用同一个名称获得的多个SharedPreferences引用,其指向同一个对象

2、getPreferences():              如果activity仅需要一个共享文件,则可以使用该方法。因为只有一个共享文件,它并不需要提供名称。

 

向SharedPreferences类中增加值的方法如下

1、调用SharedPreferences类的edit()方法获得SharedPreferences对象

2、调用诸如putString(),putInt()等方法增加相应类型的值

3、使用commit()方法提交新的值

从SharedPreferences类中读取值时,主要使用该类中定义的getXXX()方法。

 

下面用一个简单的例子来练习SharedPreferences类的使用

 

首先看布局文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout 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     <TextView
 8         android:id="@+id/textView1"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:layout_alignParentLeft="true"
12         android:layout_alignParentTop="true"
13         android:layout_marginLeft="66dp"
14         android:layout_marginTop="64dp"
15         android:text="用户名:" />
16 
17     <TextView
18         android:id="@+id/textView2"
19         android:layout_width="wrap_content"
20         android:layout_height="wrap_content"
21         android:layout_alignLeft="@+id/textView1"
22         android:layout_below="@+id/textView1"
23         android:layout_marginTop="32dp"
24         android:text="密码:" />
25 
26     <EditText
27         android:id="@+id/editText1"
28         android:layout_width="wrap_content"
29         android:layout_height="wrap_content"
30         android:layout_alignBaseline="@+id/textView1"
31         android:layout_alignBottom="@+id/textView1"
32         android:layout_toRightOf="@+id/textView1"
33         android:ems="10" />
34 
35     <EditText
36         android:id="@+id/editText2"
37         android:layout_width="wrap_content"
38         android:layout_height="wrap_content"
39         android:layout_alignBaseline="@+id/textView2"
40         android:layout_alignBottom="@+id/textView2"
41         android:layout_alignLeft="@+id/editText1"
42         android:ems="10"
43         android:inputType="textPassword" >
44 
45         <requestFocus />
46     </EditText>
47 
48     <Button
49         android:id="@+id/btn_load"
50         android:layout_width="wrap_content"
51         android:layout_height="wrap_content"
52         android:layout_alignLeft="@+id/editText2"
53         android:layout_below="@+id/editText2"
54         android:layout_marginTop="29dp"
55         android:text="登录" />
56 
57 </RelativeLayout>
View Code

一个简单的登录界面。

再看JAVA文件

 1 package data;
 2 
 3 import com.example.allcode.R;
 4 
 5 import android.app.Activity;
 6 import android.content.SharedPreferences;
 7 import android.content.SharedPreferences.Editor;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12 import android.widget.EditText;
13 import android.widget.Toast;
14 
15 public class Sharedpreference_use extends Activity{
16     private EditText name;
17     private EditText password;
18     private Button load;
19     
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.data_sharedpreferences);
25         
26         name = (EditText) findViewById(R.id.editText1);
27         password = (EditText) findViewById(R.id.editText2);
28         load = (Button) findViewById(R.id.btn_load);
29         
30         //登录按钮,将用户名和密码存到SharedPreferences对象中存储数据
31         //通过toast显示存储的用户名和密码
32         load.setOnClickListener(new OnClickListener() {
33             
34             @Override
35             public void onClick(View v) {
36                 // TODO Auto-generated method stub
37                 String str_name = name.getText().toString();          //获取用户名编辑框的数据
38                 String str_password = password.getText().toString();  //获取密码框中的数据
39                 
40                 //获得私有类型的SharedPreferences
41                 
42                 SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE);
43                 Editor editor = sp.edit();  //获取Editor对象
44                 editor.putString("username", str_name);     //添加用户名
45                   editor.putString("uesrpassword", str_password);   //添加密码
46                 editor.commit(); //提交数据
47                 
48                 //如果在另一个activity中获取SharedPreferences存储的数据 ,要加上下面这行代码,在同一activity种则不需要
49                 //SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE);
50                 String get_name = sp.getString("username","0");
51                 String get_password = sp.getString("uesrpassword","1");
52                 53                 Toast.makeText(Sharedpreference_use.this, "通过SharedPreferences存储的用户名为:"+get_name+"密码为:"+get_password, 1).show();
54                 //将获取的用户名和密码的数据通过toast显示出来
55             }
56         });
57         
58         
59     
60     }
61     
62 }

效果图:

 

 

SharedPreferences类存储的数据放在shared_prefs文件夹中

data/data/包名  找到你的包名   里面有个shared_prefs文件,保存的文件data.xml就是 SharedPreferences类类保存的数据

该数据是以Map键值对的形式存放在xml文件中的

-------------------------------------------------------------------

相关知识:

安卓开发_数据存储技术_内部存储

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android】6.0SharedPreferences简单数据存储
如果您有想要保存的相对较小键值对集合,则应使用 SharedPreferences API。SharedPreferences 对象指向包含键值对的文件,并提供读写这些键值对的简单方法。每个 SharedPreferences 文件均由框架进行管理,可以是私有文件,也可以是共享文件。 例如:我们登录qq并不是每次都会要输入账号密码,而是会记住密码和用户的登录状态,这些轻量的数据可以通过SharedPreferences以键值对的方式存储在本地
9 0
深入剖析Android中最简单的数据存储方式:SharedPreferences
深入剖析Android中最简单的数据存储方式:SharedPreferences
217 0
Android中SharedPreferences使用小记
Android中SharedPreferences使用小记
56 0
Android数据存储和提供器——sharedPreference
一,简单分析 应用场景: 存放基本的配置;           优势:     sharedPreference将数据以键值对的形式保存至XML文件中,而生成XML文件保存于data/data/程序包名(package name)/shared_prefs目录下。
796 0
《Android/OPhone开发完全讲义》连载(7):使用SharedPreferences存取复杂数据
本文为《Android/OPhone开发完全讲义》一书的内容连载。转载请注明出处     我们知道SharedPreferences只能保存简单类型的数据,例如,String、int等。
958 0
+关注
听着music睡
Android开发工程师
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载