使用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. ...
随机推荐
- ASP.NET Web API 基本操作(CRUD)
上一篇介绍了ASP.NET Web API的基本知识和原理,这一篇我们通过一个更直观的实例,对产品进行CRUD操作(Create/Read/Update/Delete)来继续了解一下它的基本应用. 创 ...
- 最常用的UML工具介绍
最常用的UML工具介绍 1.Rational Rose.大名鼎鼎,史上最有名.最无可替代的UML产品,以至于,大多数将之等同于UML工具,正如将可乐等同于可口可乐.需要指出的是,自从 Rational ...
- Asp.Net MVC学习总结(三)——过滤器你怎么看?
一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的逻辑.提供了一个简单而优雅的方式来实现横切关注点. 2.所谓的过滤器(Filters),MVC框架里 ...
- 信号处理——Hilbert端点效应浅析
作者:桂. 时间:2017-03-05 19:29:12 链接:http://www.cnblogs.com/xingshansi/p/6506405.html 声明:转载请注明出处,谢谢. 前言 ...
- linux中添加环境变量(python为例)
最近想用Django搭建个人博客,之前学了些python基础语法,准备边学习Django边实战操作.自己有一个阿里云服务器,用的centOS,自带的是python2.7版本,我直接安装了python3 ...
- Java进程通讯
管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信. 创建子进程Java有两种方式 //第一种 Runtime rt = Runtime.get ...
- Web 页面测试总结—控件类
web端页面测试,最常见的是基本控件的测试,只有了解常见的控件和其测试方法,才能掌握测试要点,避免漏测情况发生.根据日常工作总结,将控件和常见逻辑集合在一起,总结了几个控件类测试查场景如下. 导航条 ...
- 介绍Office 365 中文用户社区 4.0
本文于2017年3月18日首发于LinkedIn,原文链接在这里 为了给广大用户提供一个可以自由交流.切磋技术的平台,微软和其他一些国际知名的大型软件公司一样,都有创建用户社区(Community,或 ...
- struct和typedef struct在c语言中的用法
在c语言中,定义一个结构体要用typedef ,例如下面的示例代码,Stack sq:中的Stack就是struct Stack的别名. 如果没有用到typedef,例如定义 struct test1 ...
- Maven——快速入门手册(学习记录)
前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...