读书人

Android小量数据保存之SharedPreferen

发布时间: 2013-10-09 22:26:11 作者: rapoo

Android少量数据保存之SharedPreferences接口实例
SharedPreferences数据保存主要是通过键值的方式存储在xml文件中

xml文件在data/此程序的包名/XX.xml

格式

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="count" value="3" />
<string name="time">写入日期:2013年10月07日,时间:11:28:09</string>
</map>

SharedPreferences读写的基本步骤

1.通过Context的getSharedPreferences获取SharedPreferences接口的对象share:SharedPreferences share = this.getSharedPreferences("share",Context.MODE_PRIVATE);

"shre"保存的xml文件名 ,Context.MODE_PRIVATE 保存的类型为只被本程序访问 (还有MODE_WORLD_READABLE表示其余的程序能够读不能写,MODE
_WORLD_WRITEBLE能读写 这两个都在api17的时候被废了)

2.通过share的getXXX的方法获取指定key的值 : share.getInt("count", 0);

1.通过SharedPreferences对象的edit()方法获取Edit对象:Edit editor = share.edit();

2.通过editor对象的putXXX方法来写入值 :editor.putInt("count", 1);

3.调用Editor的commit()方法提交修改值 :editor.commit();


访问其他程序的SharedPreferences

访问其他程序的SharedPreferences 的读写唯一不同的是先的获取该程序的Context接口对象:this.createPackageContext(packageName, flags)

packageName为要该目标程序的包名,flags访问类型

其余的就和上面的步骤差不多 就不再概叙


实例

package com.android.xiong.sharepreferencestest;import java.text.SimpleDateFormat;import java.util.Date;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private Button write;private Button read;private TextView txt1;private TextView countTxt;SharedPreferences share ;Editor editor;int countO=0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取SharedPreferences对象share = this.getSharedPreferences("share",Context.MODE_PRIVATE);//获取Editor对象    editor = share.edit();write = (Button) findViewById(R.id.write);read = (Button) findViewById(R.id.read);txt1 = (TextView) findViewById(R.id.txt1);countTxt=(TextView)findViewById(R.id.txtCount);//获取share中key为count的值countO=share.getInt("count", 0);countO++;//修改share中key为count的值editor.putInt("count", countO);//提交修改editor.commit();System.out.println("该应用程序使用了:"+countO+"次");countTxt.setText("该应用程序使用了:"+countO+"次");OnClickListener writeListener = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSimpleDateFormat data = new SimpleDateFormat("写入日期:yyyy年MM月dd日,时间:hh:mm:ss");editor.putString("time",data.format(new Date()));editor.commit();}};OnClickListener readListener=new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(!share.contains("share")){txt1.setText(share.getString("time", null));}}};write.setOnClickListener(writeListener);read.setOnClickListener(readListener);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


读书人网 >Android

热点推荐