Preferences是一种轻量级的数据存储机制,它将一些简单数据类型的数据,包括boolean类型、int类型、float类型、long类型以及String类型的数据,以键值对的形式存储在应用程序的私有Preferences目录(/data/data/<包名>/shared_prefs/中。这种Preferences机制广泛应用于存储应用 程序中的配置信息。
在Adndroid平台上,只需要用一个Context的对象调用getSharedPreferences(String name,int mode)方法传入Preferences文件名和打开模式,就可以获得一个SharedPreferences的对象。若该Preferences文件不存在,在提交数据后会创建该Preferences文件。利用SharedPreferences对象可以调用一些getter方法,传入相应的键来读取数据。要对Preferences文件的数据进行修改,首先利用SharedPreferences对象调用edit方法获得一个内部类Editor的对象,然后用这个Editor对象就可以对Preferences文件进行编辑了。注意,编辑完毕后一定要调用commit()方法,这样才会把所做的修改提交到Preferences文件当中去。下面是一个利用Preferences机制来保存Editor中所输入的字符串的示例。
就用一个简单的例子来完成Preferences功能。
创建一个界面,只显示一个EditText换件。
<?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"
>
<EditText
android:id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
然后在代码中实现程序功能。在onCreate()方法的实现中,将EditText的内容设置为上一次退出时保存在Preferences文件中字符串。而在onDestroy()方法中,则实现了将当前EditText中的字符串存储到Preferences文件。下面是详细的实现代码。
package com.action;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
public class Tab extends Activity {
EditText edit;
SharedPreferences sp;
final static String NAME = "my_sp";
final static String EDIT_KEY = "edit";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit = (EditText) findViewById(R.id.edit);
sp = getSharedPreferences(NAME, 0);
String str = sp.getString(EDIT_KEY, null);
if(str != null){
edit.setText(str);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
SharedPreferences.Editor editor = sp.edit();
editor.putString(EDIT_KEY, String.valueOf(edit.getText()));
editor.commit();
}
}
最后,此应用程序在每次启动时会将上次退出时EditText中的内容恢复
SharedPreference数据以XML格式存放的。我们可以在 File Explorer中找到,目录为:data/data/包路径/shared_prefs
我们还可以在另一个应用程序里,来调用这个XML文件里面的数据,因为他们是由包路径来找。在另一个程序里调用时,我匀首先要得到你要调用程序的Activity,也就是Context对像,然后由这个对象来获得数据。代码如下:
try {
Context context = this.getApplication().createPackageContext(
"com.hilary", Context.CONTEXT_IGNORE_SECURITY);
preference = context.getSharedPreferences("user",
Context.MODE_WORLD_READABLE);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
其它用法和上面那个程序一样。只是要注意,createPackageContexst("包名",Context.CONTEXT_IGNORE_SECURITY);这里面的两个参数
分享到:
相关推荐
获取SharedPreferences对象有两种方式: - 使用`getSharedPreferences()`方法,通常在`Activity`或`Fragment`中使用,需要传入首选项的名称和操作模式。 ``` SharedPreferences preferences = ...
以下是对SharedPreferences使用方法的详细介绍: 1. 获取SharedPreferences对象: 要使用SharedPreferences,首先需要获取到它的实例。通常有两种方式: - `getSharedPreferences(String name, int mode)`:通过...
在Android开发中,通常会编写一个工具类来方便地操作SharedPreferences,下面我们将详细讲解两种常见的SharedPreferences工具类实现方法。 ### 方法一:静态内部类 1. 首先,创建一个名为`SharedPreferencesUtil`...
使用`SharedPreferences`对象的`getString()`, `getInt()`, `getBoolean()`等方法读取数据。例如,读取一个字符串: ```java String myValue = sharedPreferences.getString("myKey", "defaultValue"); ``` 3. **...
DataStore有两种主要的实现方式: 1. Preferences DataStore:专门用于存储键值对,类似于SharedPreferences的功能,但提供了更好的性能和一致性。 2. Proto DataStore:适用于存储类型化的对象,允许更复杂的结构...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序的简单配置信息,如布尔值、整型、...学习和理解这些示例,可以帮助你更好地掌握SharedPreferences的使用和跨应用共享的方法。
SharedPreferences支持两种数据类型:基本数据类型(如布尔、整数、浮点数、字符串)以及Set数据类型(仅限于基本数据类型的Set)。 二、创建SharedPreferences 在Android应用中,可以使用以下代码创建...
本篇文章将深入探讨SharedPreferences的使用方法、特点以及在实际应用中的精彩实践。 首先,我们来了解SharedPreferences的基本操作。SharedPreferences提供了两个接口类:`SharedPreferences`和`SharedPreferences...
有两种方法: - `getSharedPreferences(String name, int mode)`:适用于全局偏好设置,需要传入文件名(默认为`PreferenceManager.getDefaultSharedPreferences(Context context)`)和访问模式(如`Context.MODE_...
这个方法需要两个参数:一个表示SharedPreferences文件的名称(通常是常量),另一个是模式,例如`Context.MODE_PRIVATE`,表示只有当前应用能访问这个文件。 2. **编辑SharedPreferences**: 要修改...
通常有两种方式,一是使用getDefaultSharedPreferences(),二是使用getSharedPreferences(),后者需要提供一个首选项文件的名称。 ```java SharedPreferences preferences = PreferenceManager....
为了实现这一目标,通常有两种策略: 1. JSON序列化:将自定义对象转换为JSON格式的字符串,然后存储这个字符串。Android提供了Gson库,它能方便地将Java对象转换为JSON字符串,反之亦然。首先,你需要在项目中引入...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于应用程序保存一些简单的配置信息,如用户设置、游戏得分等。它采用XML格式将数据持久化到设备的文件系统中,易于读写,适合小规模的数据...
当需要在两个不同的Activity之间传递数据时,尤其是在数据量不大且不需要实时更新的情况下,使用SharedPreferences是一种理想的选择。下面我们将详细探讨如何利用SharedPreferences在多个Activity之间传递数据。 ...
SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于应用程序保存一些简单的配置信息,如用户设置、应用状态等。它采用键值对的形式,支持基本数据类型,如布尔型、整型、浮点型、字符串以及长...
在Android开发中,SharedPreferences是应用数据存储的一种常见方式,它主要用来保存轻量级的数据,如用户设置、应用状态等。SharedPreferences提供了键值对的形式来持久化数据,这些数据会以XML格式存储在设备的文件...
存储 Bean 类集合时,可以考虑以下两种方法: 1. **将集合转换为 JSON 数组字符串**:将 List 或数组中的所有 Bean 对象转换为 JSON 数组,然后整体存储。 ```java Type listType = new TypeToken<List<UserBean>>...
`SharedPreferences` 提供了一种简单的方法来保存和读取用户设置或者应用的状态。它的操作通常分为两个部分:编辑(Edit)和提交(Commit)。在编辑阶段,我们可以添加、修改或删除键值对,然后通过调用`commit()`...
本篇文章将深入讲解SharedPreferences的两种获取方法以及四种操作模式。 **一、获取SharedPreferences的两种方式** 1. **调用Context对象的getSharedPreferences()方法** 这种方式通常在需要在整个应用程序范围内...
总的来说,这个`ViewPageDemo`项目涵盖了Android开发中的两个重要概念:一是使用`ViewPager`创建多页面的用户体验,二是通过`SharedPreferences`持久化用户数据,优化启动流程。这两个工具在实际开发中都有着广泛的...