文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android中怎么使用SQLite实现记住密码功能

2023-05-31 00:25

关注

这期内容当中小编将会给大家带来有关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;  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实现记住密码功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯