Android数据存储之SharedPreferences的简单使用(保存用户名和密码)
2015-03-05 16:20
351 查看
SharedPreferences概述:
SharedPreferences是android提供的、基于xml文件的一种用于保存简单数据的数据存储机制
二、使用步骤:
取得SharedPreferences对象
参数说明:
第一个参数为生成的用于存储数据的xml文件的名称;
第二个参数为该文件的存储权限;
SharedPreferences生成的xml文件的存储权限分为以下几种:
Activity.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND
Activity.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取
Activity.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入;
Activity.MODE_APPEND:该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件
//如果希望文件被其他应用读和写,可以传入:
Activity.MODE_WORLD_READABLE+Activity.MODE_WORLD_WRITEABLE
取得编辑对象Editor
存入数据
提交
取数据
下面看简单使用示例:
1、xml文件
界面大体样子如下:
下面是主activity程序:
此程序代码比较丑,代码也没什么条理性,但是仅供参考以及个人笔记回顾所用;
SharedPreferences是android提供的、基于xml文件的一种用于保存简单数据的数据存储机制
二、使用步骤:
取得SharedPreferences对象
SharedPreferences pref = getSharedPreferences("userinfo", MODE_PRIVATE); |
第一个参数为生成的用于存储数据的xml文件的名称;
第二个参数为该文件的存储权限;
SharedPreferences生成的xml文件的存储权限分为以下几种:
Activity.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND
Activity.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取
Activity.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入;
Activity.MODE_APPEND:该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件
//如果希望文件被其他应用读和写,可以传入:
Activity.MODE_WORLD_READABLE+Activity.MODE_WORLD_WRITEABLE
取得编辑对象Editor
Editor editor = pref.edit(); |
editor.putXXX(); |
editor.commit(); |
pref.getXXX(); |
1、xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sharedpreferencedemo.MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="用户名:" /> <EditText android:id="@+id/et_user_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginLeft="15dp" android:inputType="text" android:layout_toRightOf="@+id/textView1" android:ems="10" > <requestFocus /> </EditText> <EditText android:id="@+id/et_password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView2" android:layout_alignBottom="@+id/textView2" android:layout_alignLeft="@+id/et_user_name" android:layout_alignParentRight="true" android:ems="10" android:inputType="text" /> <Button android:id="@+id/button2" android:onClick="doClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_centerHorizontal="true" android:text="取消" /> <CheckBox android:id="@+id/is_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button2" android:layout_below="@+id/et_password" android:text="保存用户名" /> <Button android:id="@+id/button1" android:onClick="doClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/et_password" android:layout_below="@+id/is_check" android:text="登录" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/textView1" android:layout_below="@+id/et_user_name" android:layout_marginTop="24dp" android:text="密码:" /> </RelativeLayout> |
下面是主activity程序:
package com.example.sharedpreferencedemo; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { EditText etUserName,etPassword; CheckBox chk; Button login,cancel; SharedPreferences pref; Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUserName = (EditText)findViewById(R.id.et_user_name); etPassword = (EditText)findViewById(R.id.et_password); chk = (CheckBox)findViewById(R.id.is_check); login = (Button)findViewById(R.id.button1); cancel = (Button)findViewById(R.id.button2); pref = getSharedPreferences("userinfo", MODE_PRIVATE); editor = pref.edit(); if (pref.getBoolean("isSave", false)) { etUserName.setText(pref.getString("userName", "")); chk.setChecked(true); }else { chk.setChecked(false); } login.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String name = etUserName.getText().toString().trim(); String pass = etPassword.getText().toString().trim(); if (name.equals("admin")&&pass.equals("123456")) { if (chk.isChecked()) { editor.putString("userName", name); editor.putBoolean("isSave", chk.isChecked()); editor.commit(); }else{ editor.clear(); editor.remove("userName"); editor.remove("isSave"); editor.commit(); } Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); } } }); } } |
相关文章推荐
- Android学习(19) -- 数据存储之File (简单登录保存用户名和密码)
- Android保存用户名等小数据使用SharedPreference
- android:preference保存数据(适合于保存上一次用户名与密码)
- Android 使用SharedPreferences 进行保存账号or密码or其它数据
- android学习记录3(数据存储的方式:sqlite、sp、存文件。listview简单使用)
- android--内部存储写文件和使用API获取内部存储路径,sharedperferance获取原有的账号密码--简单的登陆(记录原有的账号和密码)--I/0流介绍
- Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
- android:保存用户名密码等应用程序数据
- Adnroid中的数据存储大全,以及ActiveAndroid的简单使用
- android数据存储_SharedPreferences的简单使用
- android之-----SharedPreferences(存储数据)简单使用
- android数据存储_SharedPreferences的简单使用
- Android-02:使用SharedPreferences存储简单数据
- (十)android 中数据存储与访问——使用SharedPreferences保存数据
- Android--模拟登陆用户名密码,使用File或openFileOutput保存文件
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- 在Android中使用SharedPreferences保存简单的数据
- NSUserDefaults:通常用来保存一些小巧的数据,如用户的用户名密码,或者是用户的使用习惯,如是否自动打开背景音乐等。
- WPF 登陆界面判断输入的用户名和密码是否与数据库中保存的数据相同
- Android学习总结二:五大布局、Android测试、数据存储访问(TextUtils)、Map的使用