保存密码操作
来源:互联网 发布:爱丽小屋淘宝官方旗舰 编辑:程序博客网 时间:2024/06/06 13:05
实现退出程序记住密码的操作
代码如下:
activity_login.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_login" 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" android:background="@drawable/loginbg" tools:context="cn.edu.bzu.case_login.LoginActivity"> <include layout="@layout/login_top"></include> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/deer" android:id="@+id/imageView" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_marginBottom="23dp" /></RelativeLayout>
login_top.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 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:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_user" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etName"> <requestFocus /> </EditText> <EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etName" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_pass" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etPass" android:inputType="textPassword"> <requestFocus /> </EditText> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etPassword"> <CheckBox android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/password" android:layout_weight="1" android:id="@+id/ck_box"/> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btn_select" android:text="@string/btnLogin" android:id="@+id/btn_login"/> </LinearLayout></RelativeLayout>
strings.xml
<resources> <string name="app_name">Case_Login</string> <string name="etName">请输入账号</string> <string name="etPass">请输入密码</string> <string name="btnLogin">登录</string> <string name="password">记住密码</string></resources>
LoginActivity
package cn.edu.bzu.case_login;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;import java.util.Map;import cn.edu.bzu.utils.Utils;public class LoginActivity extends AppCompatActivity implements View.OnClickListener{ private CheckBox ck_box; private EditText etName; private EditText etPassword; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initView(); //取出号码 Map<String,String> userInfo= Utils.getUerInfo(this); if (userInfo!=null){ etName.setText(userInfo.get("username")); etPassword.setText(userInfo.get("password")); SharedPreferences sp=this.getSharedPreferences("data",Context.MODE_PRIVATE); if(sp.getBoolean("check",false)){ ck_box.setChecked(sp.getBoolean("check",true)); } } } private void initView(){ ck_box=(CheckBox)findViewById(R.id.ck_box); etName=(EditText)findViewById(R.id.etName); etPassword=(EditText)findViewById(R.id.etPassword); findViewById(R.id.btn_login).setOnClickListener(this); } public void onClick(View view){ //当单击"登录"时,获取账户和密码 String username=etName.getText().toString().trim(); String password=etPassword.getText().toString(); //检验账户和密码是否为空 if(TextUtils.isEmpty(username)){ Toast.makeText(this,"请输入账户",Toast.LENGTH_SHORT).show(); return ; } if(TextUtils.isEmpty(password)){ Toast.makeText(this,"请输入密码 ",Toast.LENGTH_SHORT).show(); return ; } //判断用户=admin,密码=123456 if(username.equals("admin")&&password.equals("123456")){ //是否勾选了记住密码 boolean CheckBoxLogin = ck_box.isChecked(); if(ck_box.isChecked()){ //保存用户信息 boolean isSaveSuccess=Utils.saveUserInfo(this,username,password,CheckBoxLogin); }else{ Utils.del(this); } Intent intent=new Intent(this,Activity02.class); startActivity(intent); }else { Toast.makeText(this,"登录失败",Toast.LENGTH_SHORT).show(); } }}
Utils类(用于账户和密码的存储与读取)
package cn.edu.bzu.utils;import android.content.Context;import android.content.SharedPreferences;import java.util.HashMap;import java.util.Map;/** * Created by 李小宁 on 2017/4/8. */public class Utils { //保存账号和密码到data.xml文件 public static boolean saveUserInfo(Context context,String username,String password,boolean CheckBoxLogin){ SharedPreferences sp=context.getSharedPreferences("data",Context.MODE_PRIVATE); SharedPreferences.Editor edit=sp.edit(); //创建一个Editor对象 edit.putString("userName",username); edit.putString("pwd",password); edit.putBoolean("check",CheckBoxLogin); edit.commit(); return true; } //从data.xml文件中获取存储的账户和密码 public static Map<String,String> getUerInfo(Context context){ SharedPreferences sp=context.getSharedPreferences("data",Context.MODE_PRIVATE); String username=sp.getString("userName",null); String password=sp.getString("pwd",null); Map<String,String> userMap=new HashMap<String, String>(); userMap.put("username",username); userMap.put("password",password); return userMap; } public static void del(Context context){ SharedPreferences sp=context.getSharedPreferences("data",Context.MODE_PRIVATE); SharedPreferences.Editor edit = sp.edit(); edit.clear(); edit.putBoolean("check",false); edit.commit(); }}
activity_02.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_02" 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="cn.edu.bzu.case_login.Activity02"> <TextView android:text="Hello world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:id="@+id/textView" android:textSize="30dp"/></RelativeLayout>
0 0
- 保存密码操作
- js操作cookie,实现登录密码保存
- js操作cookie,实现登录密码保存
- js操作cookie,实现登录密码保存
- js操作cookie,实现登录密码保存
- 保存密码
- 密码保存
- 保存密码
- 保存密码
- 对SD卡的读写操作-保存用户登录密码
- ADSL无法保存密码
- putty 保存密码版
- cookie 保存用户名密码
- 保存用户名密码
- Cookie保存用户名密码
- TortoiseSVN 客户端 保存密码
- keychiain 保存账户密码
- 保存数据-记住密码
- 题目1002:Grading
- (3)ARM40-A5板应用程序——ARM40上使用sqlite3的demo
- Qt QLabel文字自动换行 Qwidget设置item不可拖动
- Linux驱动修炼之道-SPI驱动框架源码分析(中)
- Web查看号码归属地
- 保存密码操作
- TP 中D()和M()方法的区别
- 利用 PCA来简化数据
- 题目1003:A+B
- 深入Java集合系列之四:ConcurrentHashMap
- Android Dialog和pPopuwindow
- Intellij IDEA中使用Mybatis-generator自动生成Mtbatis代码
- 关于从svn上新下载的项目往往报类找不到,而类又存在的错误问题
- 慕课网-初识Java微信公众号开发