Android存储之SharedPreferences存储

来源:互联网 发布:生活方式品牌 知乎 编辑:程序博客网 时间:2024/05/23 20:51

转载请注明出处:http://blog.csdn.net/joker_ya/article/details/41546399

最近工作的事情暂时有着落了,所以最近也不怎么焦急了。

在安卓中提供了5种存储方式,分别是:文件存储、SQLite数据库方式、内容提供者(Content provider)、SharedPreferences和网络存储5种存储方式。今天給大家讲解一下最简单的存储方式--SharedPreferences存储方式。


SharedPreferences是Android提供用来存储一些简单的配置信息的一种机制,它以键值对的方式存储,这样开发人员就可以很方便地实现读取和存入。SharedPreferences经常用于存储常见的欢迎语、登录用户名和密码等信息。SharedPreferences是Android平台上一个轻量级的存储类,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存,类似于Windows系统上的ini配置文件,但是它分多种权限,可以全局共享访问,最终是以XML方式来保存,但是整体效率不是特别高。XML处理时Dalvik会通过自带底层的本地XMLParser解析,如XMLpull方式,这样对于内存资源占用比较好。


两个Activity之间的数据传递除了可以通过Intent来传递外,还可以使用SharedPreferences来共享数据的方式实现。SharedPreferences的用法很简单,例如,在MainActivity中编写如下代码:

<span style="font-size:18px;">package com.example.sharedpreferencesdemo;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;/** * SharedPreferences存储方式的使用 *  * @author Joker_Ya */public class MainActivity extends ActionBarActivity {// 存储文件的名称private final static String SHARE_NAME = "data";private SharedPreferences preferences;private SharedPreferences.Editor editor;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);// 得到SharedPreferencespreferences = getSharedPreferences(SHARE_NAME, 0);// 获取SharedPreferences.Editor,用于存入键值对editor = preferences.edit();// editor相当于MAP集合,使用put来设置键和值editor.putString("item", "myData");// 提交完成editor.commit();Toast.makeText(this, "已成功用SharedPreferences将数据存入", 3000).show();// 设置按钮的点击事件button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,OtherActivity.class);startActivity(intent);}});}}</span>

代码中用getSharedPreferences得到SharedPreferences的对象preferences,然后用preferences得到编辑器editor。在editor中put入键值对。这里我输入的是key=item,value=myData,然后commit提交。这里提一下:在我们设置文件名的时候,设置名字就好了。不用设置文件的后缀名,系统在生成该文件的时候会自动帮我们加上.xml的后缀名。最后点击按钮在另一个Activity中获取存入的数据并显示出来。另一个Activity的代码如下:

<span style="font-size:18px;">package com.example.sharedpreferencesdemo;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.TextView;/** *  * @author Joker_Ya *  */public class OtherActivity extends ActionBarActivity {private TextView textView;private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.other_layout);textView = (TextView) findViewById(R.id.textview);// 得到SharedPreferences,后面的两个参数中,第一个参数为文件名,第二个为权限sp = getSharedPreferences("data", 0);// 获取数据String data = sp.getString("item", null);textView.setText(data);}}</span>

代码比较简单就不多说了。让我们运行一下来看看效果吧!


另外,保存文件的存放路径为:data/data/你的包名/share_prefs/目录下。如刚刚创建的项目的文件路径为:data/data/com.example.sharedpreferencesdemo/share_prefs/data.xml。如下图所示:


我们把data.xml文件提取到桌面打开如下图所示:

说明确实是把数据存入到名为data.xml的文件中。

好了,今天就这样了。

最后,附上源码下载地址:


源码下载

0 0
原创粉丝点击