Android之使用SharedPreferences保存用户偏好参数

在Android应用中,我们常需要记录用户设置的一些偏好参数,,此时我们就需要用SharedPreferences和Editor将这些信息保存下来,在下次登录时读取。

SharedPreferences保存的数据主要类似于配置信息格式的数据,因此它保存数据的形式为key-value对,下面我们来看下实例代码。

首先是界面布局,比较简单,就是一个普通的登陆界面.

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 <EditText
11     android:layout_width="fill_parent"
12     android:layout_height="wrap_content"
13     android:id="@+id/account"
14     />
15 <EditText
16     android:layout_width="fill_parent"
17     android:layout_height="wrap_content"
18     android:id="@+id/password"
19     android:layout_below="@id/account"
20     />
21 <Button
22         android:layout_width="fill_parent"
23         android:layout_height="wrap_content"
24         android:layout_below="@id/password"
25         android:text="保存参数"
26         android:id="@+id/save"
27         android:onClick="save"
28  />
29 </RelativeLayout>

这是自定义的Preferences 类,用来实现数据的保存 ,可在Android的内置存储空间产生一文件。

 1 import android.R.integer;
 2 import android.content.Context;
 3 import android.content.SharedPreferences;
 4 import android.content.SharedPreferences.Editor;
 5 import android.widget.EditText;
 6
 7 public class Preferences {
 8
 9     private Context context;
10     public Preferences(Context context)
11     {
12         this.context=context;
13     }
14
15
16     public void save(String name, Integer valueOf)
17     {
18         //保存文件名字为"shared",保存形式为Context.MODE_PRIVATE即该数据只能被本应用读取
19         SharedPreferences preferences=context.getSharedPreferences("shared",Context.MODE_PRIVATE);
20
21         Editor editor=preferences.edit();
22         editor.putString("name", name);
23         editor.putInt("age", valueOf);
24
25         editor.commit();//提交数据
26     }
27
28
29 }

下面是Mainactivity的代码。在activity的oncreate阶段我们加载本地的数据。

import java.util.HashMap;
import java.util.Map;

import android.R.integer;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText account,passworad;
    Preferences prefer;//自定义的类
    SharedPreferences preference;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        account=(EditText)findViewById(R.id.account);
        passworad=(EditText)findViewById(R.id.password);

        //获取本地的数据
       preference=getSharedPreferences("shared", MODE_PRIVATE);
        Map<String, String> map=new HashMap<String, String>();
        map.put("name",preference.getString("name",""));
        map.put("age", String.valueOf(preference.getInt("age", 0)));
        account.setText(map.get("name"));
        passworad.setText(map.get("age"));

    }

    //保存文件的方法
    public void save(View v) {
    String name=account.getText().toString();
    String age=passworad.getText().toString();
    prefer=new Preferences(this);
    prefer.save(name,Integer.valueOf(age));
    Toast.makeText(getApplicationContext(), "保存完成", Toast.LENGTH_SHORT).show();

    }

     @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

我们看一下效果.

点击保存参数,出现保存完成则说明我们已经保存成功了,在下次登录的时候可以看到这些参数还在。因为记录文件是在内置空间中的,所以我们在SD卡中找不到该文件,

如果有root权限的手机可以下载个RE文件管理,我们可以再/data/data/的路径找到很多应用程序的内置文件夹,我们可以在这些文件夹中看到一个shared_prefs文件夹,

里面就有我们刚刚设置而产生的xml文件。

Android之使用SharedPreferences保存用户偏好参数

时间: 2024-10-20 15:14:09

Android之使用SharedPreferences保存用户偏好参数的相关文章

数据类操作之SharedPreferences(保存用户偏好参数)

(一)概述 本节给大家介绍的是第二种存储用户数据的方式,使用SharedPreferences(保存用户偏好参数)保存数据, 当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能 联网等相关信息,如果使用数据库的话,显得有点大材小用了!我们把上面这些配置信息称为用户的偏好 设置,就是用户偏好的设置,而这些配置信息通常是保存在特定的文件中!比如windows使用ini文件, 而J2SE中使用properties属性文件与xml文件来保存软件的配置信息;而

SharedPreferences保存用户偏好参数

package com.example.administrator.myapplication; import android.content.Context; import android.content.SharedPreferences; /** * Created by Administrator on 2016/5/7 0007. */ public class BrowserSP { private Context context; private SharedPreferences

Android中利用SharedPreferences保存信息

package com.example.sharepreferen; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.vi

Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置

很多应用都会有用户设置,用户的一些偏好可以由用户来决定那是应用人性化的体现,在实际开发中很多情况都作成可配置的了,本篇博客要介绍的是一个比较炫的状态按钮切换,我想很多开发者都想做出这样的效果,在这里我也就把自己参与的项目当中的这部分实现,做出Demo来于朋友们分享. 没有图,我感觉就特别不舒服: 这样看没办法看出效果,如果能做出动态图就好了,下次吧. 除了ToggleButton的自定义之外,用户配置的信息也是要保存起来的,每一次启动程序的时候要能保证使用的是之前的配置,而不是默认配置,在这里使

Android 自定义ToggleButton+用SharedPreferences保存用户配置

布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@dr

Servlet之保存用户偏好设置简单功能的实现

写在前面: 先来陈述一下为什么会有这样一个需求和这篇博文. 这是公司的一个项目,我们负责前端,后台服务由其他公司负责.该系统有一个系统偏好设置模块,用户可以设置系统的背景图片等系统样式,因为这是一个比较简单的功能,所以当时没有让后台公司来实现,由自己公司的一个领导编写了一个Servlet.但是由于服务器故障被格式化之后,这个Servlet就丢失了.本来打算跟领导汇报的,但是又怕挨批评,而且这个功能也并不复杂,所以决定自己实现一下吧.但是作为一个对Java一点都不懂的我来说,还是废了不少功夫的,所

Android - 保存用户首次使用状态(SharedPreferences)

保存用户首次使用状态(SharedPreferences) 本文地址: http://blog.csdn.net/caroline_wendy 用户首次登陆时, 可能需要用户教育, 讲解界面操作, 但是不应该在以后的登陆中, 继续显示, 则需要记录用户的登陆状态; 可以使用SharedPreferences进行记录. 在库中, 可以使用封装的PreferenceUtils类库, 使用方法如下: boolean hasShown = PreferenceUtils.get(this, FIRST_

(十)android 中数据存储与访问——使用SharedPreferences保存数据

10.1 SharedPreferences概述 数据存储方式有五种,前面介绍的是通过IO流以文件的方式存储数据,这里学习的SharedPreferences方式保存的数据,主要保存的是用户的偏好设置. 很多时候,我们开发的程序是需要向用户提供软件参数设置功能的.用户根据自己的兴趣爱好对软件的各项参数进行配置,以符合自己的使用习惯. 例如,我们使用eclipse的时候,可以设置字体的显示颜色.大小等.Eclipse内部使用的是xml格式的文件来保存软件的配置参数. 如果我们要在安卓中保存用户在软

Android使用SharedPreferences保存对象

核心原理: 对象序列化 步骤 1.要保存的对象实现序列化Serializable 2.将序列化的对象保存String(本文的做法是保存为byte数组在转为16进制的String类型保存起来) 3.将保存的String反序列化为对象 下面是完整代码 步骤1.要保存的对象实现序列化Serializable public class Sertest implements Serializable{ private String name; private int age; } 步骤2.将序列化的对象保