学习android零碎知识点笔记 preference【转载】
2016-05-19 17:00
811 查看
原帖子地址:http://liangruijun.blog.51cto.com/3061169/658521
一.Preference的简介
Preference(配置)提供了一种轻量级的数据存取方法,主要应用于数据比较少的配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机的开机问候语,可以将其以Preference方式来进行配置。也可以保存一些用户个性化设置的字体、颜色、位置等参数信息。
二.Preference存取数据的方法
使用到的接口:
SharedPreferences接口和SharedPreferences.Editor接口,它们都是来自于andorid.content包。
①SharedPreferences接口提供保存数据的方法
我们可以调用Context.getSharedPreferences(String name,int mode)方法得到SharedPreferences接口。该方法的第一个参数是文件名称,第二个参数是操作模式。操作模式有三种:
MODE_PRIVATE(私有)
MODE_WORLD_READABLE(可读)
MODE_WORLD_WRITEABLE(可写)
SharedPreferences接口的常用方法
②SharedPreferences.Editor接口提供获得数据的方法
SharedPreferences.Editor接口中的getString(String key,String defValue)、getInt(String key,int defValue)等。调用SharedPreferences的edit()方法返回SharedPreferences.Editor内部接口,该接口中提供了保存数据的方法,如putString(String key,String value)、pubInt(String
key,int value)等,调用该接口的commit方法可以将数据进行保存。
SharedPreferences.Editor接口常用的方法
下面是保存临时记事本内容的例子
当我们在手机上用记事本编写备忘录,日志的时候,突然要返回接电话,看短信的时候。我们就要停止编写,退出去听接电话,看短信。然而,当我们打完电话或者看完短信回来的时候,发现刚刚编写的内容还在记事本上,这就是Preference的作用了。
创建一个Activity,在其中放置一个EditText保存短信内容,放置一个Button用于发送信息。在onCreate()中通过getSharedPreferences()方法获得SharedPreferences接口,调用接口的getString()方法,获得保存内容,将内容设置到EditText中。
在onStop()方法中保存内容,使用getSharedPreferences().edit()方法获得SharedPreferences.Editor接口,调用SharedPreferences.Editor的putString()方法保存短信内容,调用commit()方法提交内容。
MainActivity.java
package com.android.preference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText myEditText;
private Button btn;
private static final String TEMP_INFO="temp_info";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myEditText = (EditText)findViewById(R.id.EditText1);
btn = (Button)findViewById(R.id.Button1);
//获得SharedPreferences实例
SharedPreferences sp = getSharedPreferences(TEMP_INFO, MODE_WORLD_READABLE);
//从SharedPreferences获得备忘录的内容
String content = sp.getString("info_content", "");
//在EditText中显示备忘录内容
myEditText.setText(content);
}
@Override
protected void onStop() {
super.onStop();
//获得编辑器
SharedPreferences.Editor editor = getSharedPreferences(TEMP_INFO, MODE_WORLD_WRITEABLE).edit();
//将EditText中的文本内容添加到编辑器
editor.putString("info_content", myEditText.getText().toString());
//提交编辑器内容
editor.commit();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="备忘录"
/>
<EditText
android:text=""
android:id="@+id/EditText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
/>
</LinearLayout>
效果图:
当我们退出屏幕再返回的时候,发现原来备忘录里编辑了一半的内容还在那里,其实它是把要保存的内容做诶XML文件保存在/data/data/package/shsared_prefs/下面了。
一.Preference的简介
Preference(配置)提供了一种轻量级的数据存取方法,主要应用于数据比较少的配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机的开机问候语,可以将其以Preference方式来进行配置。也可以保存一些用户个性化设置的字体、颜色、位置等参数信息。
二.Preference存取数据的方法
使用到的接口:
SharedPreferences接口和SharedPreferences.Editor接口,它们都是来自于andorid.content包。
①SharedPreferences接口提供保存数据的方法
我们可以调用Context.getSharedPreferences(String name,int mode)方法得到SharedPreferences接口。该方法的第一个参数是文件名称,第二个参数是操作模式。操作模式有三种:
MODE_PRIVATE(私有)
MODE_WORLD_READABLE(可读)
MODE_WORLD_WRITEABLE(可写)
SharedPreferences接口的常用方法
方法名称 | 方法描述 |
edit() | 返回SharedPreferences的内部接口SharedPreferences.Editor |
contains(String key) | 判断是否包含该键值 |
getAll() | 返回所有配置信息Map |
getBoolean(String key,Boolean defValue) | 获得一个boolean值 |
getFloat(String key,float defValue) | 获得一个float值 |
getInt(String key,int defValue) | 获得一个int值 |
getLong(String key,long defValue) | 获得一个long值 |
getString(String key,String defValue) | 获得一个String值 |
②SharedPreferences.Editor接口提供获得数据的方法
SharedPreferences.Editor接口中的getString(String key,String defValue)、getInt(String key,int defValue)等。调用SharedPreferences的edit()方法返回SharedPreferences.Editor内部接口,该接口中提供了保存数据的方法,如putString(String key,String value)、pubInt(String
key,int value)等,调用该接口的commit方法可以将数据进行保存。
SharedPreferences.Editor接口常用的方法
方法名称 | 方法描述 |
clear() | 清楚所有值 |
commit() | 保存 |
getAll() | 返回所有配置信息Map |
putBoolean(String key,Boolean value) | 保存一个boolean值 |
putFloat(String key,float value) | 保存一个float值 |
putInt(String key,int value) | 保存一个int值 |
putLong(String key,long value) | 保存一个long值 |
putString(String key,String value) | 保存一个String值 |
remove(String key) | 删除该键对应的键 |
当我们在手机上用记事本编写备忘录,日志的时候,突然要返回接电话,看短信的时候。我们就要停止编写,退出去听接电话,看短信。然而,当我们打完电话或者看完短信回来的时候,发现刚刚编写的内容还在记事本上,这就是Preference的作用了。
创建一个Activity,在其中放置一个EditText保存短信内容,放置一个Button用于发送信息。在onCreate()中通过getSharedPreferences()方法获得SharedPreferences接口,调用接口的getString()方法,获得保存内容,将内容设置到EditText中。
在onStop()方法中保存内容,使用getSharedPreferences().edit()方法获得SharedPreferences.Editor接口,调用SharedPreferences.Editor的putString()方法保存短信内容,调用commit()方法提交内容。
MainActivity.java
package com.android.preference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText myEditText;
private Button btn;
private static final String TEMP_INFO="temp_info";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myEditText = (EditText)findViewById(R.id.EditText1);
btn = (Button)findViewById(R.id.Button1);
//获得SharedPreferences实例
SharedPreferences sp = getSharedPreferences(TEMP_INFO, MODE_WORLD_READABLE);
//从SharedPreferences获得备忘录的内容
String content = sp.getString("info_content", "");
//在EditText中显示备忘录内容
myEditText.setText(content);
}
@Override
protected void onStop() {
super.onStop();
//获得编辑器
SharedPreferences.Editor editor = getSharedPreferences(TEMP_INFO, MODE_WORLD_WRITEABLE).edit();
//将EditText中的文本内容添加到编辑器
editor.putString("info_content", myEditText.getText().toString());
//提交编辑器内容
editor.commit();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="备忘录"
/>
<EditText
android:text=""
android:id="@+id/EditText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
/>
</LinearLayout>
效果图:
当我们退出屏幕再返回的时候,发现原来备忘录里编辑了一半的内容还在那里,其实它是把要保存的内容做诶XML文件保存在/data/data/package/shsared_prefs/下面了。
相关文章推荐
- Android button边框线,只定义一个边框的颜色
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- 浅析Android中的消息机制
- Android打开各种文件
- Android--百度地图定位功能的具体实现<百度地图SDK版本 v3.7.3>
- android——彻底关闭——应用程序
- Android.mk 语法
- Android中解析XML
- [Android设计模式]Android退出应用程序终极方法
- android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds
- Android学习笔记二十九:Android Socket编程介绍(示例,出错代码)
- 用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
- Android——继续深造——从安装Android Studio 2.0开始(详)
- Android Studio Genymotion
- Android 输入法
- 关于android真机访问本地电脑服务器以及访问数据库的那点事
- Android基类 Acitvity
- Android-完全退出当前应用程序的四种方法
- Android Drawable Resources系列5:<level-list>
- Android6.0运行时权限处理详解