`
hilary3113
  • 浏览: 265921 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

SharedPreferences两种用法

阅读更多

  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

    获取SharedPreferences对象有两种方式: - 使用`getSharedPreferences()`方法,通常在`Activity`或`Fragment`中使用,需要传入首选项的名称和操作模式。 ``` SharedPreferences preferences = ...

    android的SharedPreferences用法举例源代码

    以下是对SharedPreferences使用方法的详细介绍: 1. 获取SharedPreferences对象: 要使用SharedPreferences,首先需要获取到它的实例。通常有两种方式: - `getSharedPreferences(String name, int mode)`:通过...

    SharedPreferences工具类(2种)

    在Android开发中,通常会编写一个工具类来方便地操作SharedPreferences,下面我们将详细讲解两种常见的SharedPreferences工具类实现方法。 ### 方法一:静态内部类 1. 首先,创建一个名为`SharedPreferencesUtil`...

    使用SharedPreferences进行数据存储

    使用`SharedPreferences`对象的`getString()`, `getInt()`, `getBoolean()`等方法读取数据。例如,读取一个字符串: ```java String myValue = sharedPreferences.getString("myKey", "defaultValue"); ``` 3. **...

    Android中DataStore替代SharedPreferences

    DataStore有两种主要的实现方式: 1. Preferences DataStore:专门用于存储键值对,类似于SharedPreferences的功能,但提供了更好的性能和一致性。 2. Proto DataStore:适用于存储类型化的对象,允许更复杂的结构...

    SharedPreferences文件在不同应用之间数据共享

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储应用程序的简单配置信息,如布尔值、整型、...学习和理解这些示例,可以帮助你更好地掌握SharedPreferences的使用和跨应用共享的方法。

    Android中使用SharedPreferences实现自动登录

    SharedPreferences支持两种数据类型:基本数据类型(如布尔、整数、浮点数、字符串)以及Set数据类型(仅限于基本数据类型的Set)。 二、创建SharedPreferences 在Android应用中,可以使用以下代码创建...

    android SharedPreferences的精彩使用

    本篇文章将深入探讨SharedPreferences的使用方法、特点以及在实际应用中的精彩实践。 首先,我们来了解SharedPreferences的基本操作。SharedPreferences提供了两个接口类:`SharedPreferences`和`SharedPreferences...

    Android 使用SharedPreferences实现数据的读写

    有两种方法: - `getSharedPreferences(String name, int mode)`:适用于全局偏好设置,需要传入文件名(默认为`PreferenceManager.getDefaultSharedPreferences(Context context)`)和访问模式(如`Context.MODE_...

    用SharedPreferences方式储存数据

    这个方法需要两个参数:一个表示SharedPreferences文件的名称(通常是常量),另一个是模式,例如`Context.MODE_PRIVATE`,表示只有当前应用能访问这个文件。 2. **编辑SharedPreferences**: 要修改...

    SharedPreferences保存输入记录

    通常有两种方式,一是使用getDefaultSharedPreferences(),二是使用getSharedPreferences(),后者需要提供一个首选项文件的名称。 ```java SharedPreferences preferences = PreferenceManager....

    Android-Fit利用SharedPreferences存储对象

    为了实现这一目标,通常有两种策略: 1. JSON序列化:将自定义对象转换为JSON格式的字符串,然后存储这个字符串。Android提供了Gson库,它能方便地将Java对象转换为JSON字符串,反之亦然。首先,你需要在项目中引入...

    SharedPreferences 的使用

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于应用程序保存一些简单的配置信息,如用户设置、游戏得分等。它采用XML格式将数据持久化到设备的文件系统中,易于读写,适合小规模的数据...

    利用SharedPreferences 在2个不同的Activity传递数据

    当需要在两个不同的Activity之间传递数据时,尤其是在数据量不大且不需要实时更新的情况下,使用SharedPreferences是一种理想的选择。下面我们将详细探讨如何利用SharedPreferences在多个Activity之间传递数据。 ...

    SharedPreferences工具类

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于应用程序保存一些简单的配置信息,如用户设置、应用状态等。它采用键值对的形式,支持基本数据类型,如布尔型、整型、浮点型、字符串以及长...

    SharedPreferences简单实例

    在Android开发中,SharedPreferences是应用数据存储的一种常见方式,它主要用来保存轻量级的数据,如用户设置、应用状态等。SharedPreferences提供了键值对的形式来持久化数据,这些数据会以XML格式存储在设备的文件...

    SharedPreferences中存储bean类集合或者存储bean类

    存储 Bean 类集合时,可以考虑以下两种方法: 1. **将集合转换为 JSON 数组字符串**:将 List 或数组中的所有 Bean 对象转换为 JSON 数组,然后整体存储。 ```java Type listType = new TypeToken&lt;List&lt;UserBean&gt;&gt;...

    SharedPreferences实例

    `SharedPreferences` 提供了一种简单的方法来保存和读取用户设置或者应用的状态。它的操作通常分为两个部分:编辑(Edit)和提交(Commit)。在编辑阶段,我们可以添加、修改或删除键值对,然后通过调用`commit()`...

    Android SharedPreferences四种操作模式使用详解

    本篇文章将深入讲解SharedPreferences的两种获取方法以及四种操作模式。 **一、获取SharedPreferences的两种方式** 1. **调用Context对象的getSharedPreferences()方法** 这种方式通常在需要在整个应用程序范围内...

    使用ViewPager及SharedPreferences保存用户数据的demo

    总的来说,这个`ViewPageDemo`项目涵盖了Android开发中的两个重要概念:一是使用`ViewPager`创建多页面的用户体验,二是通过`SharedPreferences`持久化用户数据,优化启动流程。这两个工具在实际开发中都有着广泛的...

Global site tag (gtag.js) - Google Analytics