保存密码操作

来源:互联网 发布:爱丽小屋淘宝官方旗舰 编辑:程序博客网 时间: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
原创粉丝点击