目录
一.主界面:登录界面
二.功能:注册
三.功能:修改密码
四.功能:显示数据
五.功能:找回密码
一.主界面:登录界面
(1)要实现的功能:登录,记住密码,下次自动登录。
(2)需要的技术:数据库查询,SharedPreferences,接口的实现
(3)实现思路:
记住密码:通过SharedPreferences向user.info写值,user为记住的用户名, pass为记住的密码
自动登录:在记住密码的基础上向userinfo写入一个zddl字段的值,如果值为1调用登录接口
避免重复代码:定义接口实现登录
登录界面的界面xml:activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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"
tools:context="com.example.fjfz.myapplication.MainActivity">
TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="24dp"
android:layout_y="99dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="165dp"
android:layout_y="150dp"
android:text="用户名:"
tools:layout_editor_absoluteX="169dp"
tools:layout_editor_absoluteY="99dp" />
<EditText
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="251dp"
android:layout_y="127dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="262dp"
tools:layout_editor_absoluteY="186dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="167dp"
android:layout_y="213dp"
android:text="密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/pass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="253dp"
android:layout_y="189dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<Button
android:id="@+id/btdl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="185dp"
android:layout_y="315dp"
android:text="登录"
tools:layout_editor_absoluteX="239dp"
tools:layout_editor_absoluteY="273dp" />
<CheckBox
android:id="@+id/jzmm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="172dp"
android:layout_y="262dp"
android:text="记住密码"
tools:layout_editor_absoluteX="41dp"
tools:layout_editor_absoluteY="220dp" />
<CheckBox
android:id="@+id/zddl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="354dp"
android:layout_y="261dp"
android:text="自动登录"
tools:layout_editor_absoluteX="382dp"
tools:layout_editor_absoluteY="292dp" />
<Button
android:id="@+id/btzc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="302dp"
android:layout_y="314dp"
android:text="注册"
tools:layout_editor_absoluteX="418dp"
tools:layout_editor_absoluteY="318dp" />
<Button
android:id="@+id/btzh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="415dp"
android:layout_y="310dp"
android:text="找回密码"
tools:layout_editor_absoluteX="329dp"
tools:layout_editor_absoluteY="370dp" />
<Button
android:id="@+id/btxg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="375dp"
android:layout_y="378dp"
android:text="修改密码"
tools:layout_editor_absoluteX="329dp"
tools:layout_editor_absoluteY="370dp" />
<Button
android:id="@+id/btxs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="240dp"
android:layout_y="374dp"
android:text="显示密码"
tools:layout_editor_absoluteX="329dp"
tools:layout_editor_absoluteY="370dp" />
</AbsoluteLayout>
代码:MainActivity.java
package com.example.fjfz.myapplication;
import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
void login() {
Cursor cursor=db.query("user",null,"user=? and pass=?",new String[]{user.getText().toString(),pass.getText().toString()},null,null,null);
if (cursor.getCount() > 0) {
Toast.makeText(getApplicationContext(),"登录成功",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),"登录失败",Toast.LENGTH_LONG).show();
}
}
EditText user,pass;
Button btdl,btzc,btxs,btzh,btxg;
SQLiteDatabase db;
ContentValues values;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
CheckBox jzmm,zddl;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user=findViewById(R.id.user);
pass=findViewById(R.id.pass);
btdl=findViewById(R.id.btdl);
jzmm=findViewById(R.id.jzmm);
zddl=findViewById(R.id.zddl);
sharedPreferences=getSharedPreferences("userinfo",MODE_PRIVATE);
editor=sharedPreferences.edit();
db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
db.execSQL("create table if not exists user(user text,pass text)");
values=new ContentValues();
user.setText(sharedPreferences.getString("user",""));
pass.setText(sharedPreferences.getString("pass",""));
String a=sharedPreferences.getString("zddl","");
btzc=findViewById(R.id.btzc);
btxs=findViewById(R.id.btxs);
btzh=findViewById(R.id.btzh);
btxg=findViewById(R.id.btxg);
btxs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),XSMM.class));
}
});
btzh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),ZHMM.class));
}
});
btxg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),XG.class));
}
});
btzc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),REG.class));
}
});
if (!TextUtils.isEmpty(user.getText().toString()) && !TextUtils.isEmpty(pass.getText().toString())) {
if (a.equals("1")) {
zddl.setChecked(true);
login();
} else {
jzmm.setChecked(true);
}
}
btdl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (zddl.isChecked()) {
editor.putString("user",user.getText().toString());
editor.putString("pass",pass.getText().toString());
editor.putString("zddl","1");
editor.commit();
} else {
editor.putString("user","");
editor.putString("pass","");
editor.putString("zddl","");
editor.commit();
}
if (jzmm.isChecked()) {
editor.putString("user",user.getText().toString());
editor.putString("pass",pass.getText().toString());
editor.commit();
} else {
editor.putString("user","");
editor.putString("pass","");
editor.commit();
}
login();
}
});
}
}
二.功能:注册
(1)要实现的功能:注册,判断密码合法性(需要具备字母或数字)
(2)需要的技术:list的使用,字符的截取
(3)实现思路:
判断密码合法性:设定String类型的Arraylist,循环list,判断输入框是否包含此字符串
注册界面的界面xml:activity_reg.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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"
tools:context="com.example.fjfz.myapplication.REG">
TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="24dp"
android:layout_y="99dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="165dp"
android:layout_y="150dp"
android:text="用户名:"
tools:layout_editor_absoluteX="169dp"
tools:layout_editor_absoluteY="99dp" />
<EditText
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="251dp"
android:layout_y="127dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="262dp"
tools:layout_editor_absoluteY="186dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="167dp"
android:layout_y="213dp"
android:text="密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/pass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="253dp"
android:layout_y="189dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="169dp"
android:layout_y="273dp"
android:text="确定密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/qdmm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="257dp"
android:layout_y="245dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<Button
android:id="@+id/btzc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="270dp"
android:layout_y="310dp"
android:text="注册"
tools:layout_editor_absoluteX="239dp"
tools:layout_editor_absoluteY="273dp" />
</AbsoluteLayout>
注册界面的代码:REG.java
package com.example.fjfz.myapplication;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class REG extends AppCompatActivity {
EditText user,pass,qdmm;
Button btzc;
SQLiteDatabase db;
ContentValues values;
int canreg=0;
String list1="1234567890";
String list="abcdefghijklmnopqrstwuvxyzABCDEFGHIJKLMNOPQRSTWVUXYZ";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reg);
user=findViewById(R.id.user);
pass=findViewById(R.id.pass);
qdmm=findViewById(R.id.qdmm);
btzc=findViewById(R.id.btzc);
db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
db.execSQL("create table if not exists user(user text,pass text)");
values=new ContentValues();
canreg=0;
btzc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!TextUtils.isEmpty(user.getText()) &&!TextUtils.isEmpty(pass.getText().toString()) && !TextUtils.isEmpty(qdmm.getText().toString())) {
if (pass.getText().toString().length() < 8) {
canreg=0;
} else {
for (int i=0;i<=list.length();i++) {
if (pass.getText().toString().indexOf(list.substring(i,i)) != -1 ) {
canreg=1;
break;
} else {
canreg=0;
}
}
for (int i=0;i<=list1.length();i++) {
if (pass.getText().toString().indexOf(list1.substring(i,i)) != -1 ) {
canreg=1;
break;
} else {
canreg=0;
}
}
}
if (canreg==1) {
Cursor cursor=db.query("user",null,"user=?",new String[]{user.getText().toString()},null,null,null);
if (cursor.getCount() > 0) {
Toast.makeText(getApplicationContext(),"用户名,密码已存在",Toast.LENGTH_LONG).show();
} else {
values.clear();
values.put("user",user.getText().toString());
values.put("pass",pass.getText().toString());
db.insert("user",null,values);
Toast.makeText(getApplicationContext(),"注册成功",Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getApplicationContext(),"密码必须八位并包含数字和英文字符",Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getApplicationContext(),"用户名密码不能为空",Toast.LENGTH_LONG).show();
}
}
});
}
}
三.功能:修改密码
(1)要实现的功能:修改密码
(2)需要的技术:无
(3)实现思路:直接在登录的基础上,如果成功登录,则更新新的密码到数据库
修改密码界面的界面xml:activity_xg.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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"
tools:context="com.example.fjfz.myapplication.XG">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="24dp"
android:layout_y="99dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="165dp"
android:layout_y="150dp"
android:text="用户名:"
tools:layout_editor_absoluteX="169dp"
tools:layout_editor_absoluteY="99dp" />
<EditText
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="251dp"
android:layout_y="127dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="262dp"
tools:layout_editor_absoluteY="186dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="167dp"
android:layout_y="213dp"
android:text="密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/pass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="253dp"
android:layout_y="189dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="169dp"
android:layout_y="273dp"
android:text="新密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/xmm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="257dp"
android:layout_y="245dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<Button
android:id="@+id/btxg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="270dp"
android:layout_y="310dp"
android:text="修改密码"
tools:layout_editor_absoluteX="239dp"
tools:layout_editor_absoluteY="273dp" />
</AbsoluteLayout>
修改密码的代码:XG.java
package com.example.fjfz.myapplication;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class XG extends AppCompatActivity {
SQLiteDatabase db;
ContentValues values;
EditText user,pass,xmm;
Button btxg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xg);
values=new ContentValues();
db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
db.execSQL("create table if not exists user(user text,pass text)");
btxg=findViewById(R.id.btxg);
user=findViewById(R.id.user);
pass=findViewById(R.id.pass);
xmm=findViewById(R.id.xmm);
btxg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor cursor=db.query("user",null, "user=? and pass=?",new String[]{user.getText().toString(),pass.getText().toString()},null,null,null);
if (cursor.getCount() > 0) {
values.clear();
values.put("user",user.getText().toString());
values.put("pass",xmm.getText().toString());
db.update("user",values,"user=?",new String[]{user.getText().toString()});
Toast.makeText(getApplicationContext(),"修改成功",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),"密码错误",Toast.LENGTH_LONG).show();
}
}
});
}
}
四.功能:显示数据
(1)要实现的功能:将读取的数据显示在listview
(2)需要的技术:读取数据库,listview加入数据
(3)实现思路:无
显示界面的界面xml:activity_xsmm.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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"
tools:context="com.example.fjfz.myapplication.XSMM">
<ListView
android:id="@+id/list1"
android:layout_width="140dp"
android:layout_height="447dp"
android:layout_x="214dp"
android:layout_y="0dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
<ListView
android:id="@+id/list2"
android:layout_width="140dp"
android:layout_height="447dp"
android:layout_x="357dp"
android:layout_y="2dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
</AbsoluteLayout>
显示界面的代码:XSMM.java
package com.example.fjfz.myapplication;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class XSMM extends AppCompatActivity {
ListView list1,list2;
SQLiteDatabase db;
List<String> user=new ArrayList<String>();
List<String> pass=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xsmm);
list1=findViewById(R.id.list1);
list2=findViewById(R.id.list2);
db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
db.execSQL("create table if not exists user(user text,pass text)");
Cursor cursor=db.query("user",null,null,null,null,null,null);
while (cursor.moveToNext()) {
user.add(cursor.getString(cursor.getColumnIndex("user")));
pass.add(cursor.getString(cursor.getColumnIndex("pass")));
ArrayAdapter<String> user1=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,user);
ArrayAdapter<String> pass1=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,pass);
list1.setAdapter(user1);
list2.setAdapter(pass1);
}
}
}
五.功能:找回密码
(1)要实现的功能:用户输入二级密码,找回密码
(2)需要的技术:读取数据库数据
(3)实现思路:
二级密码实现:这里写死的123456,一般情况是写入数据库另外的键值,查询是否正确参考登录。
找回密码界面的界面xml:activity_zhmm.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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"
tools:context="com.example.fjfz.myapplication.ZHMM">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="165dp"
android:layout_y="150dp"
android:text="用户名:"
tools:layout_editor_absoluteX="169dp"
tools:layout_editor_absoluteY="99dp" />
<EditText
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="251dp"
android:layout_y="127dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="262dp"
tools:layout_editor_absoluteY="186dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="167dp"
android:layout_y="213dp"
android:text="密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/pass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="253dp"
android:layout_y="189dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="169dp"
android:layout_y="273dp"
android:text="二级密码"
tools:layout_editor_absoluteX="122dp"
tools:layout_editor_absoluteY="242dp" />
<EditText
android:id="@+id/ejmm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="257dp"
android:layout_y="245dp"
android:ems="10"
android:inputType="textPersonName"
android:text=""
tools:layout_editor_absoluteX="173dp"
tools:layout_editor_absoluteY="302dp" />
<Button
android:id="@+id/btzh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="299dp"
android:layout_y="316dp"
android:text="找回密码"
tools:layout_editor_absoluteX="239dp"
tools:layout_editor_absoluteY="273dp" />
</AbsoluteLayout>
找回密码的代码:ZHMM.java:
package com.example.fjfz.myapplication;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ZHMM extends AppCompatActivity {
EditText user,pass,ejmm;
Button btzh;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zhmm);
//一般找回密码在注册的时候有二级密码
user=findViewById(R.id.user);
pass=findViewById(R.id.pass);
ejmm=findViewById(R.id.ejmm);
btzh=findViewById(R.id.btzh);
db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
db.execSQL("create table if not exists user(user text,pass text)");
btzh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor cursor=db.query("user",null,null,null,null,null,null);
if (ejmm.getText().toString().equals("123456")) { //二级密码一般要存入数据库,这里设置成123456
pass.setText("");
while (cursor.moveToNext()) {
if (cursor.getString(cursor.getColumnIndex("user")).equals(user.getText().toString())) {
pass.setText(cursor.getString(cursor.getColumnIndex("pass")));
}
}
} else {
Toast.makeText(getApplicationContext(),"二级密码错误",Toast.LENGTH_LONG).show();
}
}
});
}
}
Developed by 福州机电工程职业技术学校 wh