`
yaku2688
  • 浏览: 89054 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android数据存储SharedPreferences的使用

阅读更多

SharedPreferences配置文件为XML文件,路径:/data/data/<package name>/shared_prefs目录下

关键代码:

//第一个参数用于指定该文件的名称,第二个参数指定文件的操作模式,共有四种操作模式。
//如果希望生成的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
//另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);  
Editor edit = perferences.edit();//获得编辑器
edit.putString("name", "我是内容");  
edit.putInt("age", 20);  
edit.commit();//提交内容

获取数据:

SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);  
String nameStr = preference.getString("name", "");//如果取不到值就取值后面的参数   
int ageStr = preference.getInt("age", 0);  

//其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference 
Context context = createPackageContext("cn.yaku.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences perferences = context.getSharedPreferences("yaku", Context.MODE_WORLD_READABLE);
String name = perferences.getString("name", "");
int age = perferences.getInt("age", 0);

//如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如: 
File xmlFile = new File("/data/data/<package name>/shared_prefs/yaku.xml");

 示例代码:

 

package com.yaku.SharedPreferences;

import com.yaku.test.R;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/**
 * SharedPerferences的使用
 * @author Administrator
 */
public class ShareActivity extends Activity {
	private EditText name;
	private EditText age;
	private Button sure;
	private Button recover;
	private Button clear;
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sharedperference);
		
		name = (EditText)findViewById(R.id.name);
		age = (EditText)findViewById(R.id.age);
		sure = (Button)findViewById(R.id.sure);
		recover = (Button)findViewById(R.id.recover);
		clear = (Button)findViewById(R.id.clear);
		//保存信息到yaku.xml文件
		sure.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				String nameStr = name.getText().toString();
				String ageStr = age.getText().toString();
				if(!"".equals(nameStr)&&nameStr!=null && !"".equals(ageStr)&&ageStr!=null){
					SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);
					Editor edit = perferences.edit();
					edit.putString("name", nameStr);
					edit.putInt("age", Integer.parseInt(ageStr));
					edit.commit();
					Toast.makeText(ShareActivity.this, "OK", 0).show();
				}
			}
		});
		//恢复保存的数据
		recover.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);
				String nameStr = preference.getString("name", "");//如果取不到值就取值后面的参数
				int ageStr = preference.getInt("age", 0);
				name.setText(nameStr);
				age.setText(String.valueOf(ageStr));
			}
		});
		//清除数据
		clear.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				name.setText(null);
				age.setText(null);
			}
		});
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics