首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android数据储存SharedPreferences的使用

2012-09-29 
Android数据存储SharedPreferences的使用SharedPreferences配置文件为XML文件,路径:/data/data/package n

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 stubsuper.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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void onClick(View v) {name.setText(null);age.setText(null);}});}}

?

热点排行