使用SharedPreferences存储用户配置信息
用SharedPreferences来保存用户的基本配置信息非常的方便,实现起来也很容易;以下是一个简单的例子:
效果截图:

主要代码:
public class MainActivity
extends AppCompatActivity
implements View.OnClickListener {
private EditText mEtName;
private EditText mEtPassword;
private CheckBox mCbMark;
private Button mBtnOk;
private final String KEY_NAME = "name";
private final String KEY_PASSWORD = "password";
private final String KEY_MARK = "mark"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initViews();
} @Override
public void onClick(View v) {
String name = mEtName.getText().toString().trim();
String password = mEtPassword.getText().toString().trim();
if ("".equalsIgnoreCase(name) || "".equalsIgnoreCase(password)) {
Toast.makeText(this, "账号和密码不能为空!", Toast.LENGTH_LONG).show();
}
else {
SharedPreferences userInfo = getSharedPreferences("user_info", MODE_PRIVATE);
SharedPreferences.Editor editor = userInfo.edit();
editor.putString(KEY_NAME, name);
editor.putBoolean(KEY_MARK, mCbMark.isChecked());
if (mCbMark.isChecked()) {
editor.putString(KEY_PASSWORD, password);
}
else {
editor.putString(KEY_PASSWORD, "");
}
editor.apply();//---应用操作 Toast.makeText(this, "用户信息保存成功!", Toast.LENGTH_LONG).show();
}
} private void initViews() {
SharedPreferences userInfo = getSharedPreferences("user_info", MODE_PRIVATE); mEtName = (EditText)findViewById(R.id.etName);
mEtPassword = (EditText)findViewById(R.id.etPassword);
mCbMark = (CheckBox)findViewById(R.id.cbMark);
mBtnOk = (Button)findViewById(R.id.btnOk); mBtnOk.setOnClickListener(this);
mEtName.setText(userInfo.getString(KEY_NAME, ""));
if (userInfo.getBoolean(KEY_MARK, true)) {
mEtPassword.setText(userInfo.getString(KEY_PASSWORD, ""));
mCbMark.setChecked(true);
}
else {
mEtPassword.setText("");
mCbMark.setChecked(false);
} }
}
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
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="com.haoye.preferencestest.MainActivity"
android:orientation="vertical"
android:gravity="center_horizontal"
android:weightSum="100"> <EditText
android:id="@+id/etName"
android:layout_marginTop="20dp"
android:layout_width="300dp"
android:layout_height="50dp"
android:textSize="24sp"
android:hint="@string/name_hint"/>
<EditText
android:id="@+id/etPassword"
android:layout_marginTop="20dp"
android:layout_width="300dp"
android:layout_height="50dp"
android:inputType="textPassword"
android:textSize="24sp"
android:hint="@string/password_hint"/>
<CheckBox
android:id="@+id/cbMark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/cb_mark"/>
<Button
android:id="@+id/btnOk"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn_ok"/> </LinearLayout>
resources 文件:
<resources>
<string name="app_name">PreferencesTest</string>
<string name="name_hint">请输入用户名</string>
<string name="password_hint">请输入密码</string>
<string name="btn_ok">确定</string>
<string name="cb_mark">记住密码</string>
</resources>
使用SharedPreferences存储用户配置信息的更多相关文章
- Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置
Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置 2013年8月14日Android记录 很多应用都会有用户设置,用户的一些偏好可以由用户来决定 ...
- [转]mvc3 使用session来存储类来存储用户登陆信息
mvc3 使用session来存储类来存储用户登陆信息 2013-08-26 09:48:56| 分类: NET开发 |举报 |字号 订阅 项目之前的登陆机制是这样的:用户登陆后初始化一个类,类 ...
- webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口
由于WebDriver启动FireFox浏览器时会启用全新的FireFox浏览器窗口,导致当前机器的FireFox浏览器已经配置的信息在测试中均无法生效,例如已经安装的浏览器插件.个人收藏夹等.为了解 ...
- Android 自定义ToggleButton+用SharedPreferences保存用户配置
布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi ...
- ASP.NET MVC用户登录(Memcache存储用户登录信息)
一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分
- WinForm中使用XML文件存储用户配置及操作本地Config配置文件
大家都开发winform程序时候会大量用到配置App.config作为保持用户设置的基本信息,比如记住用户名,这样的弊端就是每个人一些个性化的设置每次更新程序的时候会被覆盖. 故将配置文件分两大类: ...
- SharedPreferences保存用户登录信息
UI界面:
- DRDS和RDS主要用来存储用户交易信息,MongoDB主要用来存储商品维度信息
数据集成Data Integration-数加-大数据-阿里云 https://www.aliyun.com/product/cdp 数据集成支持的数据源 数据源类型 数据源 来源数据源被读取 目标数 ...
- WinForm中使用XML文件存储用户配置及操作本地Config配置文件(zt)
因项目中采用CS结构读取Web.config文件,故参照一下的连接完成此功能,在此感谢原作者! 原文地址: http://www.cnblogs.com/zfanlong1314/p/3623622. ...
随机推荐
- java集合框架05——ArrayList和LinkedList的区别
前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图 ...
- 微信小程序,超能装的实例教程
序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...
- B/S架构与C/S架构的区别
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势. ...
- 【转】Hibernate和IBatis对比
原文地址:http://blog.csdn.net/ya2dan/article/details/7396598 项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, ...
- SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)
前言 说起整合自然离开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查. 开发环境 idea2016.SpringMVC4. ...
- 规范 : loading display & ui-view loading
angular 没有compile 完成的接口,最像的接口是$viewContentLoaded(router ui),但是一开始会开始跑,因为有ui-view 暂时解决方法是在body的loadin ...
- Zookeeper + Kafka 集群搭建
第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...
- 细谈position属性:static、fixed、relative与absolute
学习WEB有些时日了,对DOM中的定位概念有些模糊,特地花了一个下午的时间搜资料.整理写下这篇随笔. 首先,我们要清楚一个概念:文档流. 简单的讲,就是窗体自上而下分成一行一行,并在每行中按照从左到右 ...
- 200行自定义异步非阻塞Web框架
Python的Web框架中Tornado以异步非阻塞而闻名.本篇将使用200行代码完成一个微型异步非阻塞Web框架:Snow. 一.源码 本文基于非阻塞的Socket以及IO多路复用从而实现异步非阻塞 ...
- WeMall微商城源码报名插件Apply的主要源码
WeMall微信商城源码报名插件Apply,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace A ...