一、项目开发
1、项目运行效果图
2、开发概要
主要功能SharedPreferences介绍,其是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
SharedPreferences数据的四种操作模式
-
Context.MODE_PRIVATE
-
Context.MODE_APPEND
-
Context.MODE_WORLD_READABLE
-
Context.MODE_WORLD_WRITEABLE
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入
本项目中利用的是Context.MODE_PRIVATE模式,项目运行初始化是默认的记住密码状态,当勾选自动登录的时候记住密码会自动勾选,当以记住密码的状态正确登录过一次之后,系统会记住密码,将数据信息存入Android系统,ShredPreferences中的信息以XML文件的形式保存在
/data/data/cn.edu.bzu.aminiTwitter/userInfo目录下。当系统以自动登录状态正确登录过一次之后,那么系统下一次登录就会自动调取数据进入ShowActivity.xml中。
二、开发Android-SharedPreferences程序讲解
1、项目文件如下:
2、项目开发步骤
1、新建一个项目名字为aminiTitter,在布局文件activity_main.xml中设置文件布局,主要代码如下:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/LinearLayout1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@drawable/background_login"
- android:orientation="vertical"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".MainActivity" >
- <RelativeLayout
- android:id="@+id/login_div"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="15dip"
- android:background="@drawable/background_login_div_bg"
- android:padding="2dp">
- <TextView
- android:id="@+id/tvUserName"
- style="@style/normalText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignParentTop="true"
- android:layout_marginTop="5dp"
- android:text="@string/tvUserName" />
- //用户名
- <EditText
- android:id="@+id/etName"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/tvUserName"
- android:hint="@string/tvUser_hint"
- android:background="@drawable/background_login_div_bg"
- android:inputType="text"
- android:singleLine="true" >
- </EditText>
- <TextView
- android:id="@+id/tvPasswordName"
- style="@style/normalText"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/etName"
- android:layout_below="@+id/etName"
- android:layout_marginTop="5dp"
- android:text="@string/tvPasswordName" />
- //密码
- <EditText
- android:id="@+id/etPassword"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/tvPasswordName"
- android:layout_below="@+id/tvPasswordName"
- android:ems="10"
- android:inputType="textPassword"
- android:background="@drawable/background_login_div_bg"
- android:password="true"
- android:singleLine="true" />
- //登录事件
- <Button
- android:id="@+id/btnName"