Android实现记住密码小功能

本文实例为大家分享了Android实现记住密码小功能的具体代码,供大家参考,具体内容如下

以下有三个点 第一点是记住密码, 第二点是点击隐藏点击显示, 第三点是登录存储。

XML布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 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:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".v.MainActivity">

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="登录"

android:textSize="20sp"

android:textColor="#FFEB3B"

android:gravity="center"

android:padding="10dp"

android:background="#8BC34A"

>

</TextView>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_marginTop="50dp"

>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="邮箱:"

android:textColor="#03A9F4"

android:textSize="15sp"

android:textStyle="italic"

android:layout_marginLeft="30dp"

android:padding="10dp"

>

</TextView>

<EditText

android:id="@+id/youxiang"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入邮箱"

android:paddingLeft="10dp"

android:textColorHint="#FF5722"

android:textStyle="italic"

android:layout_marginRight="40dp"

>

</EditText>

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_marginTop="10dp"

>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密码:"

android:textColor="#03A9F4"

android:textSize="15sp"

android:textStyle="italic"

android:layout_marginLeft="30dp"

android:padding="10dp"

>

</TextView>

<EditText

android:id="@+id/mima"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="wrap_content"

android:hint="请输入密码"

android:paddingLeft="10dp"

android:textColorHint="#FF5722"

android:textStyle="italic"

>

</EditText>

<ImageView

android:id="@+id/can"

android:layout_width="20dp"

android:layout_height="match_parent"

android:src="@mipmap/login_icon_hide_password_n"

android:layout_marginRight="20dp"

>

</ImageView>

</LinearLayout>

<CheckBox

android:id="@+id/ji"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="记住密码"

android:textColor="#FF5722"

android:layout_marginLeft="40dp"

android:layout_marginTop="15dp"

>

</CheckBox>

<Button

android:id="@+id/deng"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="登录"

android:textColor="#FF5722"

android:background="#03A9F4"

android:textStyle="bold"

android:textSize="15sp"

android:layout_margin="30dp"

>

</Button>

</LinearLayout>

Java代码

package com.wd.health.v;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.text.method.HideReturnsTransformationMethod;

import android.text.method.PasswordTransformationMethod;

import android.view.View;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.ImageView;

import android.widget.Toast;

import com.wd.health.R;

import com.wd.health.base.BaseActivity;

import com.wd.health.bean.LoginBean;

import com.wd.health.contract.ILoginContract;

import com.wd.health.net.RsaCoder;

import com.wd.health.p.LoginPresenter;

import butterknife.BindView;

import butterknife.ButterKnife;

public class MainActivity extends BaseActivity<LoginPresenter> implements ILoginContract.ILoginView {

@BindView(R.id.can)

ImageView can;

@BindView(R.id.ji)

CheckBox ji;

@BindView(R.id.deng)

Button deng;

@BindView(R.id.youxiang)

EditText youxiang;

@BindView(R.id.mima)

EditText mima;

boolean sb=true;

private SharedPreferences user;

private SharedPreferences.Editor edit;

@Override

protected int initView() {

return R.layout.activity_main;

}

@Override

protected LoginPresenter CreatPresenter() {

return new LoginPresenter();

}

@Override

protected void loadData() {

ButterKnife.bind(this);

//默认是隐藏

mima.setTransformationMethod(PasswordTransformationMethod.getInstance());

//点击小眼睛

can.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (sb){

can.setImageResource(R.mipmap.login_icon_show_password);

mima.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); //显示

sb=false;

}else {

can.setImageResource(R.mipmap.login_icon_hide_password_n);

mima.setTransformationMethod(PasswordTransformationMethod.getInstance()); //隐藏

sb=true;

}

}

});

//记住密码

user = getSharedPreferences("user", MODE_PRIVATE);

boolean isRemenber = user.getBoolean("remember_password", false);

if(isRemenber){

youxiang.setText(user.getString("phone",""));

mima.setText(user.getString("password",""));

ji.setChecked(true);

}

//点击登录

deng.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String s1 = youxiang.getText().toString(); //获取输入框邮箱

String s2 = mima.getText().toString(); //获取输入框密码

String a=""; //存放加密的密码

try {

a = RsaCoder.encryptByPublicKey(s2); //加密后的密码

} catch (Exception e) {

e.printStackTrace();

}

if (s1.equals("")){ //如果邮箱为空则吐司

Toast.makeText(MainActivity.this, "请输入邮箱", Toast.LENGTH_SHORT).show();

}else if (s2.equals("")){ //如果密码为空则吐司

Toast.makeText(MainActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();

}else {

//这是MVP调用的P层

mPresenter.ShowDengPresenter(s1,a); //s1是邮箱 a是加密的密码

//记住密码

edit = user.edit();

if(ji.isChecked()){

edit.putBoolean("remember_password",true);

edit.putString("phone",s1); //没有加密的邮箱

edit.putString("password",s2); //没有加密的密码

}else{

edit.clear();

}

edit.apply();

}

}

});

}

@Override

public void ShowDengView(LoginBean loginBean) {

Toast.makeText(this, loginBean.getMessage(), Toast.LENGTH_SHORT).show();

if (loginBean.getStatus().equals("0000")){

user.edit().putString("userId",String.valueOf(loginBean.getResult().getUserId()))

.putString("sessionId",loginBean.getResult().getSessionId())

.putString("nickName",loginBean.getResult().getNickName())

.putString("userName",loginBean.getResult().getUserName())

.putString("jiGuangPwd",loginBean.getResult().getJiGuangPwd())

.putString("headPic",loginBean.getResult().getHeadPic())

.putString("sex",String.valueOf(loginBean.getResult().getSex()))

.putString("age",String.valueOf(loginBean.getResult().getAge()))

.putString("height",String.valueOf(loginBean.getResult().getHeight()))

.putString("weight",String.valueOf(loginBean.getResult().getWeight()))

.putString("email",String.valueOf(loginBean.getResult().getEmail()))

.putString("whetherBingWeChat",String.valueOf(loginBean.getResult().getWhetherBingWeChat()))

.putString("invitationCode",String.valueOf(loginBean.getResult().getInvitationCode()))

.putString("faceFlag",String.valueOf(loginBean.getResult().getFaceFlag()))

.commit();

//成功后跳转到首页

Intent intent = new Intent(MainActivity.this,HomeActivity.class);

startActivity(intent);

finish();

}

}

}

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

以上是 Android实现记住密码小功能 的全部内容, 来源链接: utcz.com/p/243951.html

回到顶部