为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Android的数据储存-SharedPreferences

2018-04-15 7页 doc 23KB 9阅读

用户头像

is_266065

暂无简介

举报
Android的数据储存-SharedPreferencesAndroid的数据储存-SharedPreferences Android的数据存储--SharedPreferences SharedPreferences简介 在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。 SharedP...
Android的数据储存-SharedPreferences
Android的数据储存-SharedPreferences Android的数据存储--SharedPreferences SharedPreferences简介 在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的键值对(key-value),它保存的是一个XML文件。 SharedPreferences常用的属性和 方法名称 描述 public abstract boolean contains (String key) 判断SharedPreferences是否包含特定key的数据 public abstract SharedPreferences.Editor edit () 返回一个Edit对象用于操作SharedPreferences public abstract Map String, ? getAll () 获取SharedPreferences数据里全部的key-value对 getXXX(String key,XXX defvlaue) 获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值 由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据和读取数据的能力。但是在其内部有一个Editor内部的接口,Edit这个接口有一系列的方法用于操作SharedPreference。 Editor接口的常用方法 方法名称 描述 public abstract SharedPreferences.Editor clear () 清空SharedPreferences里所有的数据 public abstract boolean commit () 当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改 public abstract SharedPreferences.Editor putXXX (String key, boolean XXX) 向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、 long、String等基本类型的值 public abstract SharedPreferences.Editor remove (String key) 删除SharedPreferences里指定key对应的数据项 SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name.int mode)来得到一个SharedPreferences实例 name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/ package name /shared_prefs下(这个面试常问到) mode:是指定读写方式,其值有三种,分别为: Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写 Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写 Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。 实例:用SharedPreferences进行简单的操作 package com.jiahui.preferences; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class SharedPreferencesDemoActivity extends Activity { private SharedPreferences sharedPreferences; private SharedPreferences.Editor editor; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sharedPreferences = this.getSharedPreferences( test ,MODE_WORLD_READABLE); editor = sharedPreferences.edit(); final EditText edtName = (EditText) this.findViewById(R.id.edtName); final EditText edtAge = (EditText) this.findViewById(R.id.edtAge); Button btnRead = (Button) this.findViewById(R.id.btnRead); Button btnWrite = (Button) this.findViewById(R.id.btnWrite); btnRead.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 如果没有这个key就以默认值 String name = sharedPreferences.getString( name , null); int age = sharedPreferences.getInt( age , 0); edtAge.setText(String.valueOf(age)); edtName.setText(name); } }); btnWrite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name = edtName.getText().toString(); int age = Integer.parseInt(edtAge.getText().toString()); editor.putInt( age , age); editor.putString( name , name); // 一定要提交 editor.commit(); } }); } } 读写其他应用SharedPreferences 在有时的开发过程中,我们可能要访问其他的应用程序的SharedPreferences,要实现这样的功能,我们必须要保证要访问的那个应用程序的SharedPreferences的访问权限要是MODE_WORLD_READABLE,这明该SharedPreferences可以被其他应用程序读取,如果指定的MODE_WORLD_WRITEABLE表明该SharedPreferences可以被其他应用程序读取写入其实现思路如下 1、 获得其他应用程序对应的Context 2、 通过这个Context得到这个应用程序的SharedPreferences,然后再利用这个SharedPreferences读取内容 以上一例的SharedPreference为例。实现代码: package com.jiahui.preferences2; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class SharedPreferencesDemo02Activity extends Activity { private Button btnRead; private EditText edtResult; Context otherContext; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { // 获取其他应用程序的Context otherContext = createPackageContext( com.jiahui.preferences , CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { e.printStackTrace(); } edtResult = (EditText) this.findViewById(R.id.edtResult); btnRead = (Button) this.findViewById(R.id.btnRead); btnRead.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取其他应用程序的SharedPreferences SharedPreferences preferences = otherContext .getSharedPreferences( test , Context.MODE_WORLD_READABLE); String name = preferences.getString( name , null); int age = preferences.getInt( age , 0); edtResult.setText( 访问的结果为:姓名: + name + 年龄: + age); } }); } } SharedPreferences的注意事项: 编辑完SharedPreferences一定要记得调用Editor的commit()方法,否则不会将数据写入 到文件里的。 回顾总结: 1、 如何得到SharedPreferences SharedPreferences preferences=getPreferences(“test”,MODE_PRIVATE); 2、 如何编辑SharedPreferences 得到Editor对象实例 SharedPreferences.Editor editor=preferences.editor(); 3、 SharedPreferences的存储位置 /data/data/ package name /shared_prefs
/
本文档为【Android的数据储存-SharedPreferences】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索