用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存储用户配置信息的更多相关文章

  1. Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置

    Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置 2013年8月14日Android记录 很多应用都会有用户设置,用户的一些偏好可以由用户来决定 ...

  2. [转]mvc3 使用session来存储类来存储用户登陆信息

    mvc3 使用session来存储类来存储用户登陆信息 2013-08-26 09:48:56|  分类: NET开发 |举报 |字号 订阅   项目之前的登陆机制是这样的:用户登陆后初始化一个类,类 ...

  3. webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口

    由于WebDriver启动FireFox浏览器时会启用全新的FireFox浏览器窗口,导致当前机器的FireFox浏览器已经配置的信息在测试中均无法生效,例如已经安装的浏览器插件.个人收藏夹等.为了解 ...

  4. Android 自定义ToggleButton+用SharedPreferences保存用户配置

    布局文件:   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi ...

  5. ASP.NET MVC用户登录(Memcache存储用户登录信息)

    一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分

  6. WinForm中使用XML文件存储用户配置及操作本地Config配置文件

    大家都开发winform程序时候会大量用到配置App.config作为保持用户设置的基本信息,比如记住用户名,这样的弊端就是每个人一些个性化的设置每次更新程序的时候会被覆盖. 故将配置文件分两大类: ...

  7. SharedPreferences保存用户登录信息

    UI界面:

  8. DRDS和RDS主要用来存储用户交易信息,MongoDB主要用来存储商品维度信息

    数据集成Data Integration-数加-大数据-阿里云 https://www.aliyun.com/product/cdp 数据集成支持的数据源 数据源类型 数据源 来源数据源被读取 目标数 ...

  9. WinForm中使用XML文件存储用户配置及操作本地Config配置文件(zt)

    因项目中采用CS结构读取Web.config文件,故参照一下的连接完成此功能,在此感谢原作者! 原文地址: http://www.cnblogs.com/zfanlong1314/p/3623622. ...

随机推荐

  1. NodeJs之crypto

    NodeJs版本:4.4.4 crypto nodejs提供了内置加密模块crypto. 加密模块提供了 HTTP 或 HTTPS 连接过程中封装安全凭证的方法. 它也提供了 OpenSSL 的哈希, ...

  2. htmlunit 导致高cup占用的坑

    原文:http://blog.csdn.net/qq_28384353/article/details/52974432#reply 将爬虫部署到服务器上运行后,在查看服务器的状态监控时发现,天猫爬虫 ...

  3. abp zero sample

    测试运行地址:http://ghy.demo.aspnetzero.com 账号:admin  密码:123456 需要源码,请加QQ:858-048-581 一.用户管理 二.日志记录 1.先编译成 ...

  4. struts2.5新配置动态调用

    开启动态调用: <constant name="struts.enable.DynamicMethodInvocation" value="true"/& ...

  5. css小技巧 :not 省时又省力

    比如,要实现下面的效果(例如:一个列表的最后一项没有边框): See the Pen gmrGOV by 杨友存 (@Gavin-YYC) on CodePen. 一般的文档结构如下: <!-- ...

  6. 使用LVS+keepalived实现mysql负载均衡的实践和总结

    前言 经过一段时间的积累,数据库的架构就需要根据项目不断的进行变化. 从单台数据库,到了两台数据库的主从,再到读写分离,再到双主,现在进一步需要更多的数据库服务器去支撑更加可怕的访问量. 那么经过那么 ...

  7. WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置

    WebStorm :是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaScript IDE ...

  8. 类中的两大类(string类、math类)的应用

    类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...

  9. rdb map出错rbd sysfs write failed

    创建了一个rbd镜像 $ rbd create --size 4096 docker_test 然后,在Ceph client端将该rbd镜像映射为本地设备时出错. $ rbd map docker_ ...

  10. 腾讯云分布式高可靠消息队列服务CMQ架构

    在分布式大行其道的今天,我们在系统内部.平台之间广泛运用消息中间件进行数据交换及解耦.CMQ是腾讯云内部自研基于的高可靠.强一致.可扩展分布式消息队列,在腾讯内部包括微信手机QQ业务红包.腾讯话费充值 ...