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的文件中。
好了,今天就这样了。
最后,附上源码下载地址:
源码下载
- Android存储之SharedPreferences存储
- Android 存储之SharedPreferences
- Android 存储之SharedPreferences
- Android存储之SharedPreferences
- Android 之SharedPreferences存储
- Android存储之SharedPreferences
- Android存储之SharedPreferences
- Android存储之SharedPreferences
- Android之SharedPreferences存储
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android--数据存储之SharedPreferences
- android数据存储之SharedPreferences
- Android之数据存储SharedPreferences
- Android数据存储之SharedPreferences
- android数据存储之--------- SharedPreferences
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- jQuery性能优化的28个建议
- xtraReprot 动态绑定数据 数据列动态
- Linux下加子接口IP,Ping指定源IP
- ld: file not found: /Users/chenweidong/Library/Developer/Xcode/DerivedData/.......
- 9png 背景 文字无法显示
- Android存储之SharedPreferences存储
- ThinkPHP(验证码不能正常显示) 图像“http://xxxxxxxxxxxxxxxx”因存在错误无法显示
- DEV TreeList 刷新技巧
- 腾讯微信技术架构
- Android(Lollipop/5.0) Material Design(一) 简介
- 带姓名的成绩单
- top域名解析达到国际水平
- 第十四周 项目1:数组大折腾
- netstat 实用实例