中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么使用SQLite實現記住密碼功能

發布時間:2021-06-29 14:44:56 來源:億速云 閱讀:240 作者:Leah 欄目:移動開發

這期內容當中小編將會給大家帶來有關Android中怎么使用SQLite實現記住密碼功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

具體內容如下

package com.example.alimjan.hello_world;


  import com.example.alimjan.hello_world.bean.UserInfo;
  import com.example.alimjan.hello_world.dataBase.UserDBHelper;
  import com.example.alimjan.hello_world.Utils.DateUtil;


  import android.app.AlertDialog;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.v7.app.AppCompatActivity;
  import android.text.Editable;
  import android.text.TextWatcher;
  import android.util.Log;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.View.OnFocusChangeListener;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.Button;
  import android.widget.CheckBox;
  import android.widget.CompoundButton;
  import android.widget.EditText;
  import android.widget.RadioButton;
  import android.widget.RadioGroup;
  import android.widget.Spinner;
  import android.widget.TextView;
  import android.widget.Toast;
  import android.widget.AdapterView.OnItemSelectedListener;


public class class_4_2_3 extends AppCompatActivity implements OnClickListener, OnFocusChangeListener {

 private RadioGroup rg_login;
 private RadioButton rb_password;
 private RadioButton rb_verifycode;
 private EditText et_phone;
 private TextView tv_password;
 private EditText et_password;
 private Button btn_forget;
 private CheckBox ck_remember;
 private Button btn_login;

 private int mRequestCode = 0;
 private int mType = 0;
 private boolean bRemember = false;
 private String mPassword = "111111";
 private String mVerifyCode;
 private UserDBHelper mHelper;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.code_4_2_3);
  rg_login = (RadioGroup) findViewById(R.id.rg_login);
  rb_password = (RadioButton) findViewById(R.id.rb_password);
  rb_verifycode = (RadioButton) findViewById(R.id.rb_verifycode);
  et_phone = (EditText) findViewById(R.id.et_phone);
  tv_password = (TextView) findViewById(R.id.tv_password);
  et_password = (EditText) findViewById(R.id.et_password);
  btn_forget = (Button) findViewById(R.id.btn_forget);
  ck_remember = (CheckBox) findViewById(R.id.ck_remember);
  btn_login = (Button) findViewById(R.id.btn_login);

  rg_login.setOnCheckedChangeListener(new RadioListener());
  ck_remember.setOnCheckedChangeListener(new CheckListener());
  et_phone.addTextChangedListener(new HideTextWatcher(et_phone));
  et_password.addTextChangedListener(new HideTextWatcher(et_password));
  btn_forget.setOnClickListener(this);
  btn_login.setOnClickListener(this);
  et_password.setOnFocusChangeListener(this);

  ArrayAdapter<String> typeAdapter = new ArrayAdapter<String>(this,
    R.layout.item_select, typeArray);
  typeAdapter.setDropDownViewResource(R.layout.item_dropdown);
  Spinner sp_type = (Spinner) findViewById(R.id.sp_type);
  sp_type.setPrompt("請選擇用戶類型");
  sp_type.setAdapter(typeAdapter);
  sp_type.setSelection(mType);
  sp_type.setOnItemSelectedListener(new TypeSelectedListener());
 }

 private class RadioListener implements RadioGroup.OnCheckedChangeListener {
  @Override
  public void onCheckedChanged(RadioGroup group, int checkedId) {
   if (checkedId == R.id.rb_password) {
    tv_password.setText("登錄密碼:");
    et_password.setHint("請輸入密碼");
    btn_forget.setText("忘記密碼");
    ck_remember.setVisibility(View.VISIBLE);
   } else if (checkedId == R.id.rb_verifycode) {
    tv_password.setText(" 驗證碼:");
    et_password.setHint("請輸入驗證碼");
    btn_forget.setText("獲取驗證碼");
    ck_remember.setVisibility(View.INVISIBLE);
   }
  }
 }

 private String[] typeArray = {"個人用戶", "公司用戶"};
 class TypeSelectedListener implements OnItemSelectedListener {
  public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
   mType = arg2;
  }

  public void onNothingSelected(AdapterView<?> arg0) {
  }
 }

 private class CheckListener implements CompoundButton.OnCheckedChangeListener {
  @Override
  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
   if (buttonView.getId() == R.id.ck_remember) {
    bRemember = isChecked;
   }
  }
 }

 private class HideTextWatcher implements TextWatcher {
  private EditText mView;
  private int mMaxLength;
  private CharSequence mStr;

  public HideTextWatcher(EditText v) {
   super();
   mView = v;
   mMaxLength = ViewUtil.getMaxLength(v);
  }

  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  }

  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
   mStr = s;
  }

  @Override
  public void afterTextChanged(Editable s) {
   if (mStr == null || mStr.length() == 0)
    return;
   if ((mStr.length() == 11 && mMaxLength == 11) ||
     (mStr.length() == 6 && mMaxLength == 6)) {
    ViewUtil.hideOneInputMethod(class_4_2_3.this, mView);
   }
  }
 }

 @Override
 public void onClick(View v) {
  String phone = et_phone.getText().toString();
  if (v.getId() == R.id.btn_forget) {
   if (phone==null || phone.length()<11) {
    Toast.makeText(this, "請輸入正確的手機號", Toast.LENGTH_SHORT).show();
    return;
   }
   if (rb_password.isChecked() == true) {
    Intent intent = new Intent(this, class_4_2_3_1.class);
    intent.putExtra("phone", phone);
    startActivityForResult(intent, mRequestCode);
   } else if (rb_verifycode.isChecked() == true) {
    mVerifyCode = String.format("%06d", (int)(Math.random()*1000000%1000000));
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("請記住驗證碼");
    builder.setMessage("手機號"+phone+",本次驗證碼是"+mVerifyCode+",請輸入驗證碼");
    builder.setPositiveButton("好的", null);
    AlertDialog alert = builder.create();
    alert.show();
   }
  } else if (v.getId() == R.id.btn_login) {
   if (phone==null || phone.length()<11) {
    Toast.makeText(this, "請輸入正確的手機號", Toast.LENGTH_SHORT).show();
    return;
   }
   if (rb_password.isChecked() == true) {
    if (et_password.getText().toString().equals(mPassword) != true) {
     Toast.makeText(this, "請輸入正確的密碼", Toast.LENGTH_SHORT).show();
     return;
    } else {
     loginSuccess();
    }
   } else if (rb_verifycode.isChecked() == true) {
    if (et_password.getText().toString().equals(mVerifyCode) != true) {
     Toast.makeText(this, "請輸入正確的驗證碼", Toast.LENGTH_SHORT).show();
     return;
    } else {
     loginSuccess();
    }
   }
  }
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == mRequestCode && data!=null) {
   //用戶密碼已改為新密碼
   mPassword = data.getStringExtra("new_password");
  }
 }

 //從修改密碼頁面返回登錄頁面,要清空密碼的輸入框
 @Override
 protected void onRestart() {
  et_password.setText("");
  super.onRestart();
 }

 @Override
 protected void onResume() {
  super.onResume();
  mHelper = UserDBHelper.getInstance(this, 2);
  mHelper.openWriteLink();
 }

 @Override
 protected void onPause() {
  super.onPause();
  mHelper.closeLink();
 }

 private void loginSuccess() {
  String desc = String.format("您的手機號碼是%s,類型是%s。恭喜你通過登錄驗證,點擊“確定”按鈕返回上個頁面",
    et_phone.getText().toString(), typeArray[mType]);
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setTitle("登錄成功");
  builder.setMessage(desc);
  builder.setPositiveButton("確定返回", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    finish();
   }
  });
  builder.setNegativeButton("我再看看", null);
  AlertDialog alert = builder.create();
  alert.show();

  if (bRemember) {
   UserInfo info = new UserInfo();
   info.phone = et_phone.getText().toString();
   info.password = et_password.getText().toString();
   info.update_time = DateUtil.getCurDateStr("yyyy-MM-dd HH:mm:ss");
   mHelper.insert(info);
  }
 }

 //為什么光標進入密碼框事件不選onClick?因為要點兩下才會觸發onClick動作(第一下是切換焦點動作)
 @Override
 public void onFocusChange(View v, boolean hasFocus) {
  String phone = et_phone.getText().toString();
  if (v.getId() == R.id.et_password) {
   if (phone.length() > 0 && hasFocus == true) {
    UserInfo info = mHelper.queryByPhone(phone);
    if (info != null) {
     et_password.setText(info.password);
    }else{
     et_password.setText("");
    }
   }
  }
 }

 public static void startHome(Context mContext) {
  Intent intent = new Intent(mContext, class_4_2_3.class);
  mContext.startActivity(intent);
 }


}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:focusable="true"
 android:focusableInTouchMode="true"
 android:orientation="vertical"
 android:padding="5dp" >

 <RadioGroup
  android:id="@+id/rg_login"
  android:layout_width="match_parent"
  android:layout_height="60dp"
  android:orientation="horizontal" >

  <RadioButton
   android:id="@+id/rb_password"
   android:layout_width="0dp"
   android:layout_height="match_parent"
   android:layout_weight="1"
   android:checked="true"
   android:gravity="left|center"
   android:text="密碼登錄"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <RadioButton
   android:id="@+id/rb_verifycode"
   android:layout_width="0dp"
   android:layout_height="match_parent"
   android:layout_weight="1"
   android:checked="false"
   android:gravity="left|center"
   android:text="驗證碼登錄"
   android:textColor="@color/black"
   android:textSize="17sp" />
 </RadioGroup>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_type"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="  我是:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <Spinner
   android:id="@+id/sp_type"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_toRightOf="@+id/tv_type"
   android:gravity="left|center"
   android:spinnerMode="dialog" />
 </RelativeLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_phone"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="手機號碼:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <EditText
   android:id="@+id/et_phone"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginBottom="5dp"
   android:layout_marginTop="5dp"
   android:layout_toRightOf="@+id/tv_phone"
   android:background="@drawable/editext_selector"
   android:gravity="left|center"
   android:hint="請輸入手機號碼"
   android:inputType="number"
   android:maxLength="11"
   android:textColor="@color/black"
   android:textColorHint="@color/grey"
   android:textCursorDrawable="@drawable/text_cursor"
   android:textSize="17sp" />
 </RelativeLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_password"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="登錄密碼:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <FrameLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_toRightOf="@+id/tv_password" >

   <EditText
    android:id="@+id/et_password"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/editext_selector"
    android:gravity="left|center"
    android:hint="請輸入密碼"
    android:inputType="numberPassword"
    android:maxLength="6"
    android:textColor="@color/black"
    android:textColorHint="@color/grey"
    android:textCursorDrawable="@drawable/text_cursor"
    android:textSize="17sp" />

   <Button
    android:id="@+id/btn_forget"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    android:gravity="center"
    android:text="忘記密碼"
    android:textColor="@color/black"
    android:textSize="17sp" />
  </FrameLayout>
 </RelativeLayout>

 <CheckBox
  android:id="@+id/ck_remember"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:button="@drawable/checkbox_selector"
  android:checked="false"
  android:padding="10dp"
  android:text="記住密碼"
  android:textColor="@color/black"
  android:textSize="17sp" />

 <Button
  android:id="@+id/btn_login"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="登錄"
  android:textColor="@color/black"
  android:textSize="22sp" />

</LinearLayout>

Android中怎么使用SQLite實現記住密碼功能

package com.example.alimjan.hello_world;

/**
 * Created by alimjan on 7/4/2017.
 */


  import android.app.Activity;
  import android.app.AlertDialog;
  import android.content.Context;
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.v7.app.AppCompatActivity;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.EditText;
  import android.widget.Toast;

public class class_4_2_3_1 extends AppCompatActivity implements OnClickListener {

 private EditText et_password_first;
 private EditText et_password_second;
 private EditText et_verifycode;
 private String mVerifyCode;
 private String mPhone;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.code_4_2_3_1);
  et_password_first = (EditText) findViewById(R.id.et_password_first);
  et_password_second = (EditText) findViewById(R.id.et_password_second);
  et_verifycode = (EditText) findViewById(R.id.et_verifycode);
  findViewById(R.id.btn_verifycode).setOnClickListener(this);
  findViewById(R.id.btn_confirm).setOnClickListener(this);
  mPhone = getIntent().getStringExtra("phone");
 }

 @Override
 public void onClick(View v) {
  if (v.getId() == R.id.btn_verifycode) {
   if (mPhone==null || mPhone.length()<11) {
    Toast.makeText(this, "請輸入正確的手機號", Toast.LENGTH_SHORT).show();
    return;
   }
   mVerifyCode = String.format("%06d", (int) (Math.random() * 1000000 % 1000000));
   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setTitle("請記住驗證碼");
   builder.setMessage("手機號"+mPhone+",本次驗證碼是"+mVerifyCode+",請輸入驗證碼");
   builder.setPositiveButton("好的", null);
   AlertDialog alert = builder.create();
   alert.show();
  } else if (v.getId() == R.id.btn_confirm) {
   String password_first = et_password_first.getText().toString();
   String password_second = et_password_second.getText().toString();
   if (password_first==null || password_first.length()<6 ||
     password_second==null || password_second.length()<6) {
    Toast.makeText(this, "請輸入正確的新密碼", Toast.LENGTH_SHORT).show();
    return;
   }
   if (password_first.equals(password_second) != true) {
    Toast.makeText(this, "兩次輸入的新密碼不一致", Toast.LENGTH_SHORT).show();
    return;
   }
   if (et_verifycode.getText().toString().equals(mVerifyCode) != true) {
    Toast.makeText(this, "請輸入正確的驗證碼", Toast.LENGTH_SHORT).show();
    return;
   } else {
    Toast.makeText(this, "密碼修改成功", Toast.LENGTH_SHORT).show();
    Intent intent = new Intent();
    intent.putExtra("new_password", password_first);
    setResult(Activity.RESULT_OK, intent);
    finish();
   }
  }
 }

 public static void startHome(Context mContext) {
  Intent intent = new Intent(mContext, class_4_2_3_1.class);
  mContext.startActivity(intent);
 }

}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:focusable="true"
 android:focusableInTouchMode="true"
 android:orientation="vertical"
 android:padding="5dp" >

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_password_first"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="輸入新密碼:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <EditText
   android:id="@+id/et_password_first"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginBottom="5dp"
   android:layout_marginTop="5dp"
   android:layout_toRightOf="@+id/tv_password_first"
   android:background="@drawable/editext_selector"
   android:gravity="left|center"
   android:hint="請輸入新密碼"
   android:inputType="numberPassword"
   android:maxLength="11"
   android:textColor="@color/black"
   android:textColorHint="@color/grey"
   android:textCursorDrawable="@drawable/text_cursor"
   android:textSize="17sp" />
 </RelativeLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_password_second"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="確認新密碼:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <EditText
   android:id="@+id/et_password_second"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginBottom="5dp"
   android:layout_marginTop="5dp"
   android:layout_toRightOf="@+id/tv_password_second"
   android:background="@drawable/editext_selector"
   android:gravity="left|center"
   android:hint="請再次輸入新密碼"
   android:inputType="numberPassword"
   android:maxLength="11"
   android:textColor="@color/black"
   android:textColorHint="@color/grey"
   android:textCursorDrawable="@drawable/text_cursor"
   android:textSize="17sp" />
 </RelativeLayout>

 <RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="60dp" >

  <TextView
   android:id="@+id/tv_verifycode"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_alignParentLeft="true"
   android:gravity="center"
   android:text="  驗證碼:"
   android:textColor="@color/black"
   android:textSize="17sp" />

  <FrameLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_toRightOf="@+id/tv_verifycode" >

   <EditText
    android:id="@+id/et_verifycode"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/editext_selector"
    android:gravity="left|center"
    android:hint="請輸入驗證碼"
    android:inputType="numberPassword"
    android:maxLength="6"
    android:textColor="@color/black"
    android:textColorHint="@color/grey"
    android:textCursorDrawable="@drawable/text_cursor"
    android:textSize="17sp" />

   <Button
    android:id="@+id/btn_verifycode"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    android:gravity="center"
    android:text="獲取驗證碼"
    android:textColor="@color/black"
    android:textSize="17sp" />
  </FrameLayout>
 </RelativeLayout>

 <Button
  android:id="@+id/btn_confirm"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="確定"
  android:textColor="@color/black"
  android:textSize="22sp" />

</LinearLayout>

上述就是小編為大家分享的Android中怎么使用SQLite實現記住密碼功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江陵县| 万源市| 墨脱县| 富锦市| 阿图什市| 乌审旗| 万年县| 南昌市| 兴化市| 德兴市| 舒兰市| 彭水| 洛南县| 浪卡子县| 孟连| 铜川市| 大田县| 永清县| 鹤庆县| 青田县| 琼海市| 册亨县| 改则县| 客服| 太湖县| 磐安县| 南丰县| 洛宁县| 建瓯市| 岢岚县| 定边县| 株洲市| 吉林省| 耿马| 米易县| 屏南县| 阿合奇县| 思茅市| 安徽省| 青神县| 利辛县|