使用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. ...
随机推荐
- BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(最大生成树)
这很明显就是最大生成树= = CODE: #include<cstdio>#include<iostream>#include<algorithm>#include ...
- Linux下ls命令显示符号链接权限为777的探索
Linux下ls命令显示符号链接权限为777的探索 --深入ls.链接.文件系统与权限 一.摘要 ls是Linux和Unix下最常使用的命令之一,主要用来列举目录下的文件信息,-l参数允许查看当前目录 ...
- 在Signalr的Hub中写方法实现与安卓的数据交互
简介: 实现数据实时刷新:SignalR 后台服务:.NET/WebAPI 为了减轻web的压力,将接口中接收数据的方法写到SignalR的Hub中 在此放一小段代码给自己加深下印象,博主有点健忘.. ...
- Yii地址美化(nginx环境)
通过urlmanager实现yii地址美化,需配合服务器中的rewrite配置 1.在'components'中加入 'urlManager'=>array( 'ur ...
- 《深入理解Java虚拟机》学习笔记之工具
善于利用工具,不仅可以加快我们分析数据,还可以快速定位和解决问题.现在我们就来看看虚拟机性能监控和故障处理工具. 在JDK的bin目录可以看到sun免费送给了我们很多小工具,这些工具虽然小巧但功能强大 ...
- Struts2学习笔记⑥
在微信读书上在看一本李刚写的Struts 2.X权威指南 (好像叫这个)的书,可以看得出来作者的开发经验还是很充足的,但是觉得他的尺度和顺序没有把握好,他自己说拦截器是数据校验.国际化的基础-完了还把 ...
- 1726: [Usaco2006 Nov]Roadblocks第二短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 835 Solved: 398[S ...
- velocity中使用枚举
版权声明:本文为博主原创文章,转载请注明出处,欢迎使劲喷 一.为什么要在velocity中使用枚举 1.目前接触到的系统,枚举通常用来在程序中定义数据字典. 举个支付的例子,比如一个字段用来标识一条记 ...
- self-question
需要即刻提升的几大能力: 1.重装系统和安装各种软件 2.自学能力,多从实际案例中总结,多归纳反思 3.拓展人际关系,和别人沟通交流 4.遇到困难迎刃而上,而不是回避退缩
- 任何一款IDE的设计思路
我们以Windows操作系统为例.现在,基于操作系统的任何计算机语言,我们说都是高级语言,从C开始.无论是哪一种,都是通过操作系统的API与计算机交互.即便.Net的FrameWork库从一定意义上何 ...