Android存储之SharedPreferences存储

转载请注明出处: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;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.button);
		// 得到SharedPreferences
		preferences = 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() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent 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;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值