您的位置:首页 > 移动开发 > Android开发

Android数据存储之SharedPreferences的简单使用(保存用户名和密码)

2015-03-05 16:20 351 查看




SharedPreferences概述:

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();


}




}


});


}



}
此程序代码比较丑,代码也没什么条理性,但是仅供参考以及个人笔记回顾所用;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐