热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

AndroidSharedPreferences实现保存登录数据功能

这篇文章主要为大家详细介绍了AndroidSharedPreferences实现保存登录数据功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android SharedPreferences保存登录数据的具体代码,供大家参考,具体内容如下

目标效果: 

程序运行显示一个登陆框,用户名输入admin,密码输入123456会提示登录成功,如果不是则提示不正确,如果勾选保存用户名,在下一个程序打开时,用户名会自动读取并显示。

1.activity_main.xml页面存放所有的控件,我在每一行都使用了线性布局。

activity_main.xml页面:


 
 
 
  
 
  
 
 
 
 
  
 
  
 
 
 
 
  
 
 
 
 
  

2.MainActivity.java页面处理登录和保存数据。

MainActivity.java页面:

package com.example.sharedpreferences;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnClickListener{
 
 SharedPreferences pref;
 Editor editor;
 private EditText etInputName,etInputPass;
 private CheckBox ckSave;
 private Button btLogin,btCancel;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 /**
 * 获取控件id
 */
 getId();
 /**
 * 保存数据
 */
 saveData();
 /**
 * 绑定点击事件
 */
 bindClick();
 }
 
 
 
 /**
 * 获取控件id
 */
 private void getId() {
 etInputName=(EditText) findViewById(R.id.etInputName);
 etInputPass=(EditText) findViewById(R.id.etInputPass);
 ckSave=(CheckBox) findViewById(R.id.cbSave);
 btLogin=(Button) findViewById(R.id.btLogin);
 btCancel=(Button) findViewById(R.id.btCancel);
 }
 /**
 * 保存数据
 */
 private void saveData() {
 
 //获得SharedPreferences对象
 pref=getSharedPreferences("userInfo",MODE_PRIVATE);//将内容存放到名为userInfo的文档内
 
 //获得SharedPreferences.Editor对象
 editor=pref.edit();
 
 String name=pref.getString("userName","");//获取用户名
 if(name.equals("")){//如果name为空,代表未选择保存用户名
 ckSave.setChecked(false);//不勾选
 }else{
 ckSave.setChecked(true);
 etInputName.setText(name);//将读取到的name值赋值到EditText中
 }
 }
 
 /**
 * 绑定点击事件
 */
 private void bindClick() {
 btLogin.setOnClickListener(this);
 btCancel.setOnClickListener(this);
 }
 
 /**
 * 按钮点击事件
 */
 @Override
 public void onClick(View view) {
 switch (view.getId()) {
 case R.id.btLogin:
 String name=etInputName.getText().toString().trim();//获取输入的名字并去掉空格
 String pass=etInputPass.getText().toString().trim();//获取输入的密码并去掉空格
 if("admin".equals(name)&&"123456".equals(pass)){
 if(ckSave.isChecked()){//如果选择保存用户名
  editor.putString("userName",name);
  editor.commit();//提交数据
 }else{//如果未选择保存用户名
  editor.remove("userName");//删除用户名
  editor.commit();//提交数据(每次更改都需要提交)
 }
 Toast.makeText(SecondActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
 }else{
 Toast.makeText(SecondActivity.this,"用户名或密码不正确",Toast.LENGTH_SHORT).show();
 }
 break;
 case R.id.btCancel:
 break;
 }
 }
}

3.保存的文件目录可以查看的到,点击右上角进入,找到data->data->当前目录的包名->shared-prefs->新建的文件名

4.另外,点击右上角导出可以暂时保存到桌面,然后选择打开方式可以查看里边信息。

5.还有一点是,当程序在真机上运行时,file explore打不开data文件夹,根据网上的经验,真机先root,然后在手机上装上R.E 管理器(或类似软件),将/data/data的权限修改为可读可写可执行,然后,就可以在eclipse中展开了。


6.SharedPreferences多用于配置信息或者内容较少的数据的保存,当数据量复杂或者较大,还是需要使用数据库。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 在椭圆形状设计中,色彩搭配方案对视觉效果和用户体验至关重要。本文分析了不同色彩组合在椭圆形状设计中的应用效果,特别探讨了白色背景与绿色文字的搭配,指出长期观看这种配色可能会导致视觉疲劳。通过引入多种色彩搭配方案,本文旨在为设计师提供更加科学和舒适的色彩选择建议。 ... [详细]
  • 优化Android BroadcastReceiver时需关注的关键事项与最佳实践
    在优化Android中的BroadcastReceiver时,开发者应关注若干关键事项并遵循最佳实践。本文探讨了在BroadcastReceiver中编码时可能遇到的意外异常及其解决方法,同时提供了提高性能和稳定性的建议。通过合理配置和使用BroadcastReceiver,可以有效避免常见的问题,如内存泄漏、响应延迟等,确保应用的高效运行。 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • 在使用 Android Studio 进行开发时,经常会遇到 XML 文件中的视图元素无法正确格式化的问题,特别是在手动添加或修改 `` 元素时。本文将详细介绍如何解决这一常见问题,并提供一些实用的技巧,帮助开发者高效地管理和优化 XML 布局文件。建议将本文收藏以备后续参考。 ... [详细]
  • 深入解析 Spring MVC 的核心原理与应用实践
    本文将详细探讨Spring MVC的核心原理及其实际应用,首先从配置web.xml文件入手,解析其在初始化过程中的关键作用,接着深入分析请求处理流程,包括控制器、视图解析器等组件的工作机制,并结合具体案例,展示如何高效利用Spring MVC进行开发,为读者提供全面的技术指导。 ... [详细]
  • 本课程详细解析了Spring AOP的核心概念及其增强机制,涵盖前置增强、后置增强和环绕增强等类型。通过具体示例,深入探讨了如何在实际开发中有效运用这些增强技术,以提升代码的模块化和可维护性。此外,还介绍了Spring AOP在异常处理和性能监控等场景中的应用,帮助开发者更好地理解和掌握这一强大工具。 ... [详细]
  • 在Windows 10环境中通过单个Tomcat实例部署两个Web应用项目
    在Windows 10环境下,本文详细介绍了如何通过单一Tomcat实例部署两个Web应用项目。首先,准备所需的两个WAR包,分别为jprss.war和jenkins.war。接着,文章逐步讲解了具体的配置和操作步骤,确保两个项目能够顺利运行。最后,验证了两个应用项目的成功部署和正常运行。 ... [详细]
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • Android平台生活辅助应用的设计与开发实现
    随着移动互联网技术的迅猛发展,Android操作系统已成为移动设备中的主流平台。本文探讨了基于Android平台的生活辅助应用设计与开发,旨在通过创新的功能和用户友好的界面,提升用户的日常生活质量。研究不仅涵盖了应用的核心功能实现,还深入分析了用户体验优化的方法,为同类应用的开发提供了有价值的参考。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • Apache Maven 3.5.0 版本的发布带来了多项重要特性和性能优化。该版本不仅改进了构建过程的效率,还增强了对复杂项目结构的支持。通过引入新的依赖解析机制和优化的插件系统,Maven 3.5.0 在提升用户体验的同时,也确保了更高的稳定性和兼容性。此外,该版本还修复了多个已知问题,进一步提升了整体的可靠性和安全性。 ... [详细]
  • 在Eclipse环境中部署Spring框架源码的过程中,本文详细探讨了Junit加载ApplicationContext的具体实现方法。通过使用`ClassPathXmlApplicationContext`类,可以有效地初始化Spring容器,从而便于单元测试的执行。此外,文章还深入分析了Spring框架的核心机制,包括依赖注入和AOP等方面的原理,为开发者提供了宝贵的实战经验和技术指导。 ... [详细]
author-avatar
可燕戏天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有