Android 使用SharedPreferrences储存密码登录界面记住密码功能

Android存储方式有很多种,在这里所用的存储方式是SharedPreferrences, 其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入。所以比较适合我们今天做的这个项目。我们来看一下运行图:

一.布局界面

1.login_top.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/activity_horizontal_margin" android:background="@drawable/logintop_roundbg"> <EditText android:id="@+id/etName" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:drawablePadding="10dp" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_user" android:hint="@string/etName"> <requestFocus></requestFocus> </EditText> <EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etName" android:inputType="textPassword" android:ems="10" android:drawablePadding="10dp" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_pass" android:hint="@string/etpassword"> <requestFocus></requestFocus> </EditText> <CheckBox android:id="@+id/cbremenber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/etPassword" android:text="@string/cbpass"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/cbremenber"> <Button android:id="@+id/btnlogin" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btnselect" android:text="@string/btnlogin" android:onClick="login"/> <Button android:id="@+id/btnRegister" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btnselect" android:text="@string/btnRegister" android:layout_marginLeft="10dp"/> </LinearLayout> </RelativeLayout>

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/loginbg" tools:context="cn.edu.bzu.logindemo.MainActivity"> <include layout="@layout/login_top"></include> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/deer" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout>

3.activity_welcome.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_welcome" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="cn.edu.bzu.logindemo.WelcomeActivity"> <TextView android:id="@+id/tvwelcome" android:text="Welcome you" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="200dp" android:textSize="40sp" /> </RelativeLayout>

二.MainActivity

public class MainActivity extends AppCompatActivity { private EditText etName; private EditText etPassword; private SharedPreferences sharedPreferences; private CheckBox cbremenber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); sharedPreferences=getSharedPreferences("remenberpassword", Context.MODE_PRIVATE); boolean isRemember=sharedPreferences.getBoolean("remenberpassword",false); if(isRemember) { String name = sharedPreferences.getString("name", ""); String password = sharedPreferences.getString("password", ""); etName.setText(name); etPassword.setText(password); cbremenber.setChecked(true); } } private void initViews() { etName=(EditText) findViewById(R.id.etName); etPassword=(EditText) findViewById(R.id.etPassword); cbremenber=(CheckBox)findViewById(R.id.cbremenber); } public void login(View view){ String name=etName.getText().toString(); String password=etPassword.getText().toString(); if("admin".equals(name)&&"123456".equals(password)){ SharedPreferences.Editor editor= sharedPreferences.edit(); if(cbremenber.isChecked()){ editor.putBoolean("remenberpassword",true); editor.putString("name",name); editor.putString("password",password); }else { editor.clear(); } editor.commit(); Intent intent=new Intent(this,WelcomeActivity.class); startActivity(intent); finish(); }else { Toast.makeText(this,"账号或密码有误",Toast.LENGTH_LONG).show(); } } }

三.WelcomeActivity

public class WelcomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); } }

以上所述是小编给大家介绍的Android 使用SharedPreferrences储存密码登录界面记住密码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-30 11:53:36

Android 使用SharedPreferrences储存密码登录界面记住密码功能的相关文章

Android实现登录界面记住密码的存储

Android存储方式有很多种,在这里所用的存储方式是SharedPreferrences, 其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入.所以比较适合我们今天做的这个项目.我们来看一下运行图: 一.布局界面 1.login_top.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a

win8系统登录界面没有密码框

问题描述 win8系统登录界面没有密码框 win8系统登录界面没有密码框. 我设计了密码的.怎么办.还原和修复过了都不可以 解决方案 鼠标点头像也没么?

c#-C#登录界面 用户名密码要和权限(如学生 。老师)对应代码

问题描述 C#登录界面 用户名密码要和权限(如学生 .老师)对应代码 我做的c#登录界面,数据库为acess,我输入一个用户名和密码选择不同的权限能进入不同权限的界面.求怎样能一个用户名密码只能对应一个权限的代码. 解决方案 虽然你的设计很奇怪,但是非要这么做也不是不可以.只是那你得维护权限和密码的关系表,以及用户和权限的关系表,而不是用户直接和密码的关系. 解决方案二: 一般权限体系是和角色挂钩的,比如有这样的角色:教师.学生,不同的角色具有不同的功能权限.具体某个用户归属于哪个角色, 他就具

JS实现登录页面记住密码和enter键登录方法推荐_javascript技巧

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>按enter键触发事件和记住账号密码</title> <script> //方法一: // document.onkeypress=function(e){ // var keycode=document.all?event.keyCode:e.which; // if(keycode

PHP永久登录、记住我功能实现方法和安全做法

  PHP永久登录.记住我功能实现方法和安全做法          这篇文章主要介绍了PHP永久登录.记住我功能实现方法和安全做法,本文着重讲解用数据库实现更安全的永久登录.记住我功能,需要的朋友可以参考下 永久登录指的是在浏览器会话间进行持续验证的机制.换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样.永久登录的存在降低了你的验证机制的安全性,但它增加了可用性.不是在用户每次访问时麻烦用户进行身份验证,而是提供了记住登录的选择. 据我观察,最常

Android实现简洁的APP登录界面

今天需求要做一个所有app都有的登录界面,正好巩固一下我们之前学的基础布局知识. 先来看下效果图 1.布局的xml文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&qu

ssh免密码登录-ssh 免密码登录 ,不成功 ,还要密码

问题描述 ssh 免密码登录 ,不成功 ,还要密码 总是做不对,每次还是要密码,,有没有 详细点的步骤呢 ,,谢谢 解决方案 是为了hadoop 做ssh免密码登录吗? 以前写过一篇博客 是关于这个的 你看下 不行继续提问http://blog.csdn.net/p_max/article/details/45701241 解决方案二: 根据文章回复 ,现在可以了,ssh-add 有的时候需要执行下 此命令,感谢

PHP永久登录、记住我功能实现方法和安全做法_php实例

永久登录指的是在浏览器会话间进行持续验证的机制.换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样.永久登录的存在降低了你的验证机制的安全性,但它增加了可用性.不是在用户每次访问时麻烦用户进行身份验证,而是提供了记住登录的选择. 据我观察,最常见的有缺陷的永久登录方案是将用户名和密码保存在一个cookie中.这样做的诱惑是可以理解的--不需要提示用户输入用户名和密码,你只要简单地从cookie中读取它们即可.验证过程的其它部分与正常登录完全相同,因

remberme-shiro记住密码功能,rememberMe功能

问题描述 shiro记住密码功能,rememberMe功能 环境:spring+springmvc+shiro+mysql 1.shiro容器配置了/**=anon,拦截所有请求. 2.使用注解@RequiresAuthentication实现权限控制 需求: 实现用户记住密码功能(2周内自动登录) java小白,请大神多多帮助,谢谢 解决方案 http://www.codeweblog.com/java-shiro%E9%85%8D%E7%BD%AE%E8%AE%B0%E4%BD%8F%E5%