Android中SharedPreference详解及简单实例
android中sharedpreference详解
sharedpreference是android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。
sharedpreference 文件保存在/data/data/<package name>/shared_prefs 路径下(如/data/data/com.android.alarmclock/shared_prefs/com.android.text_preferences.xml),通过cat命令可以查看文件,如:
通过activity自带的getsharedpreferences方法,可以得到sharedpreferences对象。
public abstract sharedpreferences getsharedpreferences (string name, int mode);
name:表示保存后 xml 文件的名称
mode:表示 xml 文档的操作权限模式(私有,可读,可写),使用0或者mode_private作为默认的操作权限模式。
1.数据读取:
通过sharedpreferences对象的键key可以获取到对应key的键值。对于不同类型的键值有不同的函数:
getboolean,getint,getfloat,getlong. public abstract string getstring (string key, string defvalue);
2.数据存入:
数据的存入是通过sharedpreferences对象的编辑器对象editor来实现的。通过编辑器函数设置键值,然后调用commit()提交设置,写入xml文件。
public abstract sharedpreferences.editor edit (); public abstract sharedpreferences.editor putstring (string key, string value); public abstract boolean commit ();
下面一个实例显示一个textview,上面显示用户使用该应用的次数。
效果图如下:
源代码如下:
main.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <textview android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/> </linearlayout>
testsharedpreferences.java:
package com.android.test; import android.app.activity; import android.content.sharedpreferences; import android.os.bundle; import android.preference.preferencemanager; import android.widget.textview; public class testsharedpreferences extends activity { /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); sharedpreferences msharedpreferences = getsharedpreferences("testsharedpreferences", 0); // sharedpreferences msharedpreferences = preferencemanager.getdefaultsharedpreferences(this); int counter = msharedpreferences.getint("counter", 0); textview mtextview = (textview)findviewbyid(r.id.textview); mtextview.settext("this app has been started " + counter + " times."); sharedpreferences.editor meditor = msharedpreferences.edit(); meditor.putint("counter", ++counter); meditor.commit(); } }
几点说明:
1.sharedpreferences的获取有两种方法:
一是上面提到的通过activity自带(本质来讲是context的)的getsharedpreferences方法,可以得到sharedpreferences对象。这种方法的好处是可以指定保存的xml文件名。
另一种是通过preferencemanager.getsharedpreferences(context)获取sharedpreferences对象。这种方法不能指定保存的xml文件名,文件名使用默认的:<package name>+"_preferences.xml"的形式,不过如果在一个包里面采用这种方式需要保存多个这样的xml文件,可能会乱掉。建议采用第一种指定xml文件名的形式。
2.数据的存入必须通过sharedpreferences对象的编辑器对象editor来实现,存入(put)之后与写入数据库类似一定要commit。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
推荐阅读
-
Android中SharedPreference详解及简单实例
-
Android 中 Tweened animation的实例详解
-
Android 中 ActivityLifecycleCallbacks的实例详解
-
Android 中自定义ContentProvider与ContentObserver的使用简单实例
-
Android中SharedPreference使用实例讲解
-
Android ListView 滚动条的设置详解及实例代码
-
Android编程中activity的完整生命周期实例详解
-
Android 中ContentProvider的实例详解
-
Java中Arrays.asList()方法详解及实例
-
Android编程中的消息机制实例详解