안 드 로 이 드 개발 노트 SQLite 최적화 기억 암호 기능

본 논문 의 사례 는 안 드 로 이 드 SQLite 가 암호 기능 을 최적화 기억 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.

package com.example.alimjan.hello_world;

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

  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>

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>
휴대 전화 번 호 를 입력 한 후 비밀번호 편집 상 자 를 누 르 면 데이터베이스 에서 내용 을 보고 이 번호 가 들 어 있 으 면 자동 으로 추가 되 며 없 으 면 비어 있 습 니 다.암호 기억 옵션 을 선택 한 후 로그 인 에 성공 하면 데이터베이스 에 저장 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기