Android数据储存之SharedPreferences总结
2015-04-24 09:47
381 查看
写在前面:本文是我参考李刚老师的《疯狂Android讲义》以及API所写的读书笔记,在此表示感谢,本人小白,如有错误敬请指教。
SharedPreferences的使用背景:
有时候,应用程序有少量的数据需要保存,而这些数据的格式很简单,比如应用程序的配置信息,小游戏的玩家积分,队友这些数据一般使用SharedPrefences进行保存
SharedPreferences的介绍:
SharedPreferences 保存的数据是简单的key-value对
SharedPreferences 主要用于读取数据,而与之对应的SharedPreferences.Editor进行写入数据
SharedPrefences的获取:SharedPreferences本身只是一个接口,无法直接创建只能通过context的getSharedPreferences()的方法来获取。
getSharedPrefences(String name ,int mode) 参数介绍:
API 上的介绍:
Name:Desired preferences file.If a preferences file by this name does not exist,it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
Mode:Use 0 or MODE_PRIVATE for the default operation, MODE_WORLD_READABLE and MODE_WORLD_WRITEABLE to control permissions.
//name:表示你期望访问对象的SharedPrefences,Mode:指定访问权限,默认为MODE_PRIVATE,只能被本应用读取。
SharedPrefenrences的常用方法:
1.edit()的方法产生SharedPrefences.Editor对象与之配合使用
2.getXXX(String key,XXX values):获取key对应的XXX类型的值
3.getAll():返回所有的值
4.contains(String key): 判断是否包含某一个key。
============================================================================================================
SharedPreferences.Editor总结:
与SharedPrefences相辅相成,写入数据
常用方法:
一定不能忘了commit的方法在执行若干操作之后,不然edit之前的操作不会产生什么效果。
putXXX(String key XXX vules);向key 中放XXX类型的值。
remove(String key):移除某key下的所有值
SharedPreferences的数据保存位置:
SharedPreferences的数据总是以XML文件保存在data/data/<包名>目录下。
第二部分:访问其他应用程序的SharedPrefences:
由于:SharedPrefences是由context创建的所以访问其他应用程序的SharedPrefences关键是先创建出其他应用的context,
然后context调用getSharedPrefences(String name ,int mode);创建出SharedPrefences的对象,如需写入数据再调用SharedPrefences.edit()的方法来创建editor。
//注意:mode所代表的访问权限
//mycontext=CreatePackageContext(Stringname, Context.CONTEXT_IGNORE_SECURITY);
//name表示其他应用程序的包名,包名是应用程序的唯一标识。
==========================================================================================
以下代码是用来创建一个简单的读取数据的事例,xml布局比较简单就是两个Button。主代码如下:
SharedPreferences的使用背景:
有时候,应用程序有少量的数据需要保存,而这些数据的格式很简单,比如应用程序的配置信息,小游戏的玩家积分,队友这些数据一般使用SharedPrefences进行保存
SharedPreferences的介绍:
SharedPreferences 保存的数据是简单的key-value对
SharedPreferences 主要用于读取数据,而与之对应的SharedPreferences.Editor进行写入数据
SharedPrefences的获取:SharedPreferences本身只是一个接口,无法直接创建只能通过context的getSharedPreferences()的方法来获取。
getSharedPrefences(String name ,int mode) 参数介绍:
API 上的介绍:
Name:Desired preferences file.If a preferences file by this name does not exist,it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
Mode:Use 0 or MODE_PRIVATE for the default operation, MODE_WORLD_READABLE and MODE_WORLD_WRITEABLE to control permissions.
//name:表示你期望访问对象的SharedPrefences,Mode:指定访问权限,默认为MODE_PRIVATE,只能被本应用读取。
SharedPrefenrences的常用方法:
1.edit()的方法产生SharedPrefences.Editor对象与之配合使用
2.getXXX(String key,XXX values):获取key对应的XXX类型的值
3.getAll():返回所有的值
4.contains(String key): 判断是否包含某一个key。
============================================================================================================
SharedPreferences.Editor总结:
与SharedPrefences相辅相成,写入数据
常用方法:
一定不能忘了commit的方法在执行若干操作之后,不然edit之前的操作不会产生什么效果。
putXXX(String key XXX vules);向key 中放XXX类型的值。
remove(String key):移除某key下的所有值
SharedPreferences的数据保存位置:
SharedPreferences的数据总是以XML文件保存在data/data/<包名>目录下。
第二部分:访问其他应用程序的SharedPrefences:
由于:SharedPrefences是由context创建的所以访问其他应用程序的SharedPrefences关键是先创建出其他应用的context,
然后context调用getSharedPrefences(String name ,int mode);创建出SharedPrefences的对象,如需写入数据再调用SharedPrefences.edit()的方法来创建editor。
//注意:mode所代表的访问权限
//mycontext=CreatePackageContext(Stringname, Context.CONTEXT_IGNORE_SECURITY);
//name表示其他应用程序的包名,包名是应用程序的唯一标识。
==========================================================================================
以下代码是用来创建一个简单的读取数据的事例,xml布局比较简单就是两个Button。主代码如下:
package com.Lzt.shareddemo; import java.text.SimpleDateFormat; import java.util.Date; import android.support.v7.app.ActionBarActivity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends ActionBarActivity { SharedPreferences Prefences; SharedPreferences .Editor editor; Button bt1, bt2; Button bt3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Prefences = getSharedPreferences("Demo", MODE_WORLD_READABLE); editor = Prefences.edit(); bt1 = (Button)findViewById(R.id.button1); bt2 = (Button)findViewById(R.id.button2); bt3 = (Button)findViewById(R.id.button3); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String time = Prefences.getString("time",null); int randmun = Prefences.getInt("randmun",0); String result = time==null?"你还没写入数据啊":"你写入的时间为"+time+"\n你写入的数据为"+randmun; Toast.makeText(MainActivity.this, result, 5000).show(); } }); bt2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //格式调用的方法 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年mm月dd日"+"hh:mm:ss"); //以key-values对来操作数据 editor.putString("time",sdf.format(new Date())); //产生随机数的方法,病强制转换为Int editor.putInt("randmun", (int) (Math.random()*100)); //editor的putXXX表示将XXX类型的数据写入 //editor与SharedPreferences的关系有点像Map里面的方法,editor用来写入数据,preferences则用来读出数据、 //editor.putInt("count", count++); editor.commit(); //editor.commit()的方法不能忘了,不然以上所有写入的操作将无用 //boolean commit :调用该方法,提交修改 } }); } @Override public 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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
相关文章推荐
- Android数据存储(总结篇)
- Android 数据存储总结
- Android数据存储(总结篇)
- android ListView 数据更新的总结
- Android 软件开发之数据的 新建 储存 读取 删除 详解(十四)
- Android 软件开发之数据的 新建 储存 读取 删除 详解(十四)
- Android 软件开发之数据的 新建 储存 读取 删除 详解(七)
- 转载 Android获取网页数据的方法总结
- Android获取网页数据的方法总结
- Android数据存储(总结篇)
- Android数据缓冲区和数据流的学习总结(BufferedWriter、BufferedOutputStream和FileOutputStream)
- Android数据缓冲区和数据流的学习总结(BufferedWriter、BufferedOutputStream和FileOutputStream)
- Android数据存储(总结篇)
- android中IO操作数据总结
- Android 数据存储与共享 总结
- Android中Activity之间数据传递的几种方法总结
- android初级之Android获取网页数据的方法总结
- android: 横竖屏切换总结-布局改变和数据保存
- 第60章、数据文件存取至储存卡(从零开始学Android)
- Android数据储存方式--SharedPreferences