Android實現(xiàn)記住密碼小功能
本文實例為大家分享了Android實現(xiàn)記住密碼小功能的具體代碼,供大家參考,具體內(nèi)容如下
以下有三個點 第一點是記住密碼, 第二點是點擊隱藏點擊顯示, 第三點是登錄存儲。
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調(diào)用的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(); //成功后跳轉(zhuǎn)到首頁 Intent intent = new Intent(MainActivity.this,HomeActivity.class); startActivity(intent); finish(); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實現(xiàn)帶有記住密碼功能的登陸界面
- Android SharedPreferences實現(xiàn)記住密碼和自動登錄界面
- Android實現(xiàn)用戶登錄記住密碼功能
- Android實現(xiàn)登錄界面記住密碼的存儲
- Android通過記住密碼功能學(xué)習(xí)數(shù)據(jù)存儲類SharedPreferences詳解及實例
- Android開發(fā)筆記SQLite優(yōu)化記住密碼功能
- Android 使用SharedPreferrences儲存密碼登錄界面記住密碼功能
- Android SharedPreferences實現(xiàn)記住密碼和自動登錄
- Android實現(xiàn)記住密碼功能
- Android sharedPreferences實現(xiàn)記住密碼功能
相關(guān)文章
Android 超詳細深刨Activity Result API的使用
這篇文章主要介紹了Android開發(fā)中Activity Result API的使用,掌握了它以后你就可以放棄startActivityForResult了,感興趣的朋友一起來看看吧2022-03-03Android5.0之Activity的轉(zhuǎn)場動畫的示例
本篇文章主要介紹了Android5.0之Activity的轉(zhuǎn)場動畫的示例,非常具有實用價值,需要的朋友可以參考下2017-10-10Android 滑動返回Activity的實現(xiàn)代碼
這篇文章主要介紹了Android 滑動返回Activity的實現(xiàn)代碼的相關(guān)資料,這里是訪微信滑動返回主頁的功能,需要的朋友可以參考下2017-07-07Android編程實現(xiàn)QQ表情的發(fā)送和接收完整實例(附源碼)
這篇文章主要介紹了Android編程實現(xiàn)QQ表情的發(fā)送和接收的方法,涉及Android圖片資源、正則表達式及對話框的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11Android自定義相機Camera實現(xiàn)手動對焦的方法示例
這篇文章主要介紹了Android自定義相機Camera實現(xiàn)手動對焦的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Android開發(fā)中ProgressDialog簡單用法示例
這篇文章主要介紹了Android開發(fā)中ProgressDialog簡單用法,結(jié)合實例形式分析了Android使用ProgressDialog的進度條顯示與關(guān)閉、更新等事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-10-10詳解Android SpannableString多行圖文混排的應(yīng)用實戰(zhàn)
本篇文章主要介紹了Android SpannableString多行圖文混排的應(yīng)用實戰(zhàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12詳細介紹Android-Room數(shù)據(jù)庫的使用
這篇文章主要介紹了詳細介紹Android-Room數(shù)據(jù)庫的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03