这次主要是做的怎样实现登录窗口的,自主密码操作。当点击记住密码之后,下次登录此账号的时候,当输入账号中失去节点的时候,就会触发相关的事件。
当登录的时候取消了记住密码的点击事件下次登录的时候就不会自动添加密码了,
刚开始的思路是想网上学习的资料一样,通过MAP并将其对应的密码账号添加到新的文件夹中。
每次在登录账号后,会在此自动添加相关的密码。实现登录。
这个的更新是省去了关于文件的先关的操作。
知识在保存用户登录是用到的数据库增加了一个项目。实现判定当前账户时候确定了记住密码操作。
具体的数据库代码,与登录界面的代码如下:
MainActivity.java
package com.example.thetrueappwen;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.service.autofill.SaveInfo;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private DBOpenMessageUser messageuser;
private EditText username,password;
private Button login,register;
private String passwordstr="";
private String usernamestr="";
private String passwordstr2;
private CheckBox checkbox;
private String setpassword,setusercheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建数据库对象
messageuser=new DBOpenMessageUser(MainActivity.this,"db_wen",null,1);
//putusername();
username=(EditText)findViewById(R.id.username1);
password=(EditText)findViewById(R.id.password1);
login=(Button)findViewById(R.id.button_login);
register=(Button)findViewById(R.id.button_register);
checkbox=(CheckBox)findViewById(R.id.checkBox);
//判断是否设置过保存密码
username.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){//获得焦点
}
else{//失去焦点
usernamestr=username.getText().toString();
if(!usernamestr.equals(""))
{
Cursor cursor=messageuser.getAllCostData(usernamestr);
if(cursor!=null){
while(cursor.moveToNext()){
setpassword=cursor.getString(cursor.getColumnIndex("password"));
setusercheck=cursor.getString(cursor.getColumnIndex("usercheck"));
if(setusercheck.equals("1"))
{
password.setText(setpassword);
checkbox.setChecked(true);
}
}
}
}
}
}
});
//点击登录后的判断
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usernamestr=username.getText().toString();
passwordstr=password.getText().toString();
Cursor cursor1=messageuser.getReadableDatabase().query("db_wen",null,"username=?",new String[]{usernamestr},null,null,null);
//显示表名、限制列、条件、值、其他的默认
if(usernamestr.equals("")||passwordstr.equals(""))
{
Toast.makeText(MainActivity.this,"请填写齐全",Toast.LENGTH_SHORT).show();
}
if(cursor1.moveToFirst())
{
do {
passwordstr2=cursor1.getString(cursor1.getColumnIndex("password"));
}while(cursor1.moveToNext());
}
cursor1.close();
if(password.getText().toString().equals(passwordstr2)&&!usernamestr.equals("")&&!passwordstr.equals(""))
{
if(checkbox.isChecked())
{
String usercheck="1";
messageuser.updatauser(usernamestr,usercheck);
}
else
{
String usercheck="0";
messageuser.updatauser(usernamestr,usercheck);
}
Toast.makeText(MainActivity.this,"恭喜登录成功",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(MainActivity.this,AllWord.class);
//传递参数在intent中
intent.putExtra("username",usernamestr);
startActivity(intent);
finish();
}
else
{
Toast.makeText(MainActivity.this,"账号不存在,不能进行登录",Toast.LENGTH_SHORT).show();
username.setText("");
password.setText("");
Toast.makeText(MainActivity.this,"请确认信息在登录",Toast.LENGTH_SHORT).show();
}
}
});
//注册页面的相关操作
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Register.class);
intent.putExtra("username",usernamestr);
startActivity(intent);
finish();
}
});
}
@Override
protected void onDestroy()
{
super.onDestroy();
if(messageuser!=null)
messageuser.close();
}
/*
private void putusername()
{
//
//传递数值
WeixinFragment11 myFragment4 = new WeixinFragment11();
Bundle bundle4 = new Bundle();
bundle4.putString("username",usernamestr);
myFragment4.setArguments(bundle4);
}*/
}
数据库添加一个变量选项
final String message="create table db_wen (_id integer primary key autoincrement,username varchar,password varchar,usercheck varchar)";这样来进行判断