[Android]数据篇 --- SharedPreferences

转载请标注:转载于http://www.cnblogs.com/Liuyt-61/p/6637515.html

---------------------------------------------------------------

Android数据的四种存储方式:

      1、SharedPreferences

      2、SQLite

      3、Content Provider

      4、File

----------------------分割线----------------------------------

一、SharedPreferences:

    1.是一种轻型数据存储方式.

    2.本质是基于XML文件存储 key-value 键值对数据

    3.通常用来存储一些简单的配置信息,如用户名、密码(后面附上实例代码)

1>SharedPreferences对象本身只能获取数据而不支持存储和修改

  Editor实现存储和修改

2>实现存储的步骤:

  ①使用Activity类的getSharedPreferences获取其对象,其中存储key-value的文件的名称由getSharedPreferences方法第一个参数指定。

  ②使用SharedPreferences接口的Edit获得SharedPreferences.Editor对象。

  ③通过SharedPreferences.Editor接口的put×××方法保存key-value对

  ④通过SharedPreferences.Editor接口的commit()方法保存key-value对进行提交。

直接上实例代码(登录界面保存用户名)

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/tv_username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名" />

        <EditText
            android:id="@+id/et_username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:hint="input username"
            android:inputType="textPersonName" >
        </EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/tv_password"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密 码" />

        <EditText
            android:id="@+id/et_password"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:hint="input password"
            android:inputType="textPassword" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/cb_remember"
            android:checked="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住用户名" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="登录" />

        <Button
            android:id="@+id/btn_canel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="取消" />
    </LinearLayout>

</LinearLayout>

MainActivity.java

package com.Liuyt.s03_e28_sharedpreferences;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private Button btn_login,btn_canel;
    private EditText et_username,et_password;
    private CheckBox cb_remenber;
    private Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//        SharedPreferences pref = getSharedPreferences("myPref", MODE_PRIVATE);
//        Editor editor = pref.edit();
//        editor.putString("name", "Liuyt");
//        editor.putInt("age",18);
//        editor.commit();
//        System.out.println(pref.getString("name", ""));
//        System.out.println(pref.getInt("age", 0));
        btn_canel = (Button) findViewById(R.id.btn_canel);
        btn_login = (Button) findViewById(R.id.btn_login);
        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
        cb_remenber = (CheckBox) findViewById(R.id.cb_remember);
        SharedPreferences pref = getSharedPreferences("myPref1", MODE_PRIVATE);
        editor = pref.edit();
        String name = pref.getString("username", "");
        if(name == null){
            cb_remenber.setChecked(false);
        }else{
            cb_remenber.setChecked(true);
            et_username.setText(name);
        }
    }
    public void doClick(View view){
        switch (view.getId()) {
        case R.id.btn_login:
            String name = et_username.getText().toString().trim();//去掉首尾空格
            String password = et_password.getText().toString().trim();
            if("admin".equals(name)&&"123456".equals(password)){
                if(cb_remenber.isChecked()){
                    editor.putString("username", name);
                    editor.commit();
                }else{
                    editor.remove("username");
                    editor.commit();
                }
                Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(MainActivity.this, "拒绝登录", Toast.LENGTH_SHORT).show();
            }
            break;
        default:
            break;
        }
    }

}
时间: 2024-12-07 11:58:55

[Android]数据篇 --- SharedPreferences的相关文章

wemall app商城源码Android数据的SharedPreferences储存方式

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习.        SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息.Sha

Android数据储存——SharedPreferences储存

SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下. 读取SharedPreference 1.获取SharedPreference对象 /* * name 打开的SharedPreferences文件名称(不需要.xml后缀) * mode 打开的SharedPreferences模式 */ SharedPrefere

Android数据篇

Android提供了多种方式(XML文件方式.文件方式.数据库方式等)进行数据的存储.开发者可以根据数据类型和设计的需要,选择适当的存储方式进行数据存储. 1.XML文件管理 XML文件更多的是用来维护应用或系统的配置文件.在Android中,goole提供了SharedPreferences这个轻型的存储类作为XML文件存储的上层接口,其本质上就是<ket, value>值对. 根据配置信息是否对其他应用开放,SharedPreferences提供了MODE_PRIVATE..MODE_WO

Android数据储存

Android提供了三种数据储存的方式,分别为: 1.文件储存--文件存储数据使用了Java中的IO操作来进行文件的保存和读取 2.SharedPreferences储存--SharedPreferences可以存取简单的数据 3.Sqlite储存--Sqlite是一个Android内建的轻量级数据库 下面会用三个章节分别介绍这三种储存方式 Android数据储存--文件储存 Android数据储存--SharedPreferences储存 Tips:很多文章认为Android的数据储存有5种,

Android入门笔记 - 数据存储 - SharedPreferences

接下来四篇我们来介绍Android中用于数据存储的四种方式: SharedPreferences Sqlite Files 网络 今天我们先来看一个最简单的:SharedPreferences. 这种数据存储方式是最简单,最轻便,也最实用的,但是只能用来储存基本数据类型.我们来看看怎么使用: 1. res/ layout/ activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an

【Android的从零单排开发日记】之入门篇(七)——Android数据存储(上)

在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也是开发平台必须提供的基础功能.不光是在Android平台上,在其他的平台上,数据的存储永远是不可缺少的一块.Android的数据存储是构建在Linux的文件系统上,它充分利用Linux的账号系统来限定应用对数据的访问,部署了一套安全和灵活并重的数据存储解决方案.Android的文件框架,以及各种数据

【Mark】Android应用开发SharedPreferences存储数据的使用方法

Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据. 1.使用SharedPreferences保存数据方法如下: //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences=

Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Pro

Android学习笔记十六.Android数据存储与IO.SharedPreferences

SharedPreferences 对于应用程序的数据输入.输出,如果是应用程序只是少量数据需要保存,那么使用普通文件就可以了(SharedPrefereces);但如果应用程序有大量数据需要存储.访问,就需要借助数据库了.Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,它没有后台进程,整个数据库就对应于一个文件. 1.SharedPreferences简介 (1)概念:SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存