写完发现代码有点多,各位提前给各位看官预警。。
文末我会把Android studio包和apk包连接贴出来。
首先创建sqlite数据库:
我创建了一个用户表和一个密码表
package mountain_hua.pwd;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
/**
* Created by dhs on 2018/3/13.
*/
public class MyDatabaseHelper extends SQLiteOpenHelper {
//用户表
public static final String CREATE_usersBD = "create table usersBD(" +
"pwd1 text primary key," +
"pwd2 text)";
//密码表
public static final String CREATE_pwdsBD = "create table pwdsBD(" +
"id integer primary key autoincrement," +
"name text," +
"adr text," +
"pwd text," +
"desc text)";
private Context mContext;
//构造方法:第一个参数Context,第二个参数数据库名,第三个参数cursor允许我们在查询数据的时候返回一个自定义的光标位置,一般传入的都是null,第四个参数表示目前库的版本号(用于对库进行升级)
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory , int version){
super(context,name ,factory,version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
//调用SQLiteDatabase中的execSQL()执行建表语句。
db.execSQL(CREATE_usersBD);
db.execSQL(CREATE_pwdsBD);
//创建成功
//Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists usersBD");
db.execSQL("drop table if exists pwdsBD");
onCreate(db);
}
}
然后是登录/注册界面,首先检查用户表是否为空,如果为空的话就进入注册界面;如果不为空,则进入登录界面。
代码如下:
package mountain_hua.pwd;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private MyDatabaseHelper dbhelper;
private int ck=0;//检查是否注册
private String pwd1;
private String pwd2;
private MyDatabaseHelper dbHelper;
private String gpwd1;
@Override
protected void onCreate(Bundle savedInstanceState) {
if_log();
if(ck==1)//注册后执行
{
super.onCreate(savedInstanceState);
setContentView(R.layout.denglu);
//设置按钮监听
Button t2=(Button)findViewById(R.id.button7);
t2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
String t1=((EditText)findViewById(R.id.editText4)).getText().toString();
//判断密码是否正确
if(query1().equals(t1)){
Intent it2=new Intent();
it2.setClass(MainActivity.this,menu1.class);
startActivity(it2);
}
else {
Toast.makeText(MainActivity.this,"一级密码不对",Toast.LENGTH_SHORT).show();
}
}
});
}
else//未注册执行
{
super.onCreate(savedInstanceState);
setContentView(R.layout.zhuce1);
//设置按钮监听
Button t1=(Button)findViewById(R.id.button2);
t1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
pwd1 = ((EditText) findViewById(R.id.editText)).getText().toString();
pwd2 = ((EditText) findViewById(R.id.editText2)).getText().toString();
//输入为空判断
if (pwd1.length()==0){
Toast.makeText(MainActivity.this,"请输入一级密码",Toast.LENGTH_SHORT).show();
}
else if (pwd2.length()==0){
Toast.makeText(MainActivity.this,"请输入二级密码",Toast.LENGTH_SHORT).show();
}else {
Intent it1=new Intent();
it1.setClass(MainActivity.this,zhuce2.class);
it1.putExtra("aa",pwd1);
it1.putExtra("bb",pwd2);
startActivity(it1);
}
}
} );
}
}
//是否注册,查询用户表是否为空
public void if_log() {
dbhelper = new MyDatabaseHelper(this, "usersBDD", null, 1);
SQLiteDatabase db = dbhelper.getReadableDatabase();
int amount=0;
Cursor c = db.rawQuery("select * from usersBD", null);
amount=c.getCount();
if(amount==1){
ck=1;
}
c.close();
db.close();
}
//登录时查询一级密码
public String query1(){
dbHelper = new MyDatabaseHelper(MainActivity.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("usersBD",null,null,null,null,null,null);
//调用moveToFirst()将数据指针移动到第一行的位置。
if (cursor.moveToFirst()){
do {
//然后通过Cursor的getColumnIndex()获取某一列中所对应的位置的索引
gpwd1 = cursor.getString(cursor.getColumnIndex("pwd1"));
}while(cursor.moveToNext());
}
cursor.close();
return gpwd1;
}
}
然后是注册界面:用户输入一级密码和二级密码进行注册,并确认。注册成功后自动跳入登录界面,并且下次再进入程序后,直接进入登录界面,不会再出现注册界面,因为用户表不为空。
package mountain_hua.pwd;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by dhs on 2018/3/12.
*/
public class zhuce2 extends AppCompatActivity {
private MyDatabaseHelper dbHelper;
private int ck=0;
//注册对话框:
private DialogInterface.OnClickListener click1=new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0,int arg1)
{
//确认注册后操作:
dbHelper = new MyDatabaseHelper(zhuce2.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("pwd1", getIntent().getStringExtra("aa"));
values.put("pwd2", getIntent().getStringExtra("bb"));
//insert()方法中第一个参数是表名,第二个参数是表示给表中未指定数据的自动赋值为NULL。第三个参数是一个ContentValues对象
db.insert("usersBD",null,values);
Toast.makeText(zhuce2.this,"注册成功,即将进入登录界面",Toast.LENGTH_SHORT).show();
Intent it3=new Intent();
it3.setClass(zhuce2.this,MainActivity.class);
startActivity(it3);
//此处应该销毁当前activity
}
};
//取消对话框
private DialogInterface.OnClickListener click2=new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface arg0,int arg1)
{
arg0.cancel();
}
};
//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.zhuce2);
TextView p1=(TextView)findViewById(R.id.textView3);
String p11 = getIntent().getStringExtra("aa");
p1.setText(p11);
TextView p2=(TextView)findViewById(R.id.textView5);
String p22 = getIntent().getStringExtra("bb");
p2.setText(p22);
//返回按钮监听
Button b1=(Button)findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
finish();
}
} );
//注册按钮监听
Button b3=(Button)findViewById(R.id.button3);
b3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
if_log();
if(ck==1){
Toast.makeText(zhuce2.this,"您已经注册过了,请结束程序后进行登录!",Toast.LENGTH_LONG).show();
}
else {
showdialog(view);
}
}
} );
}
//设置对话框
public void showdialog(View view){
AlertDialog.Builder alertdialogbuilder=new AlertDialog.Builder(this);
alertdialogbuilder.setMessage("确认注册?");
alertdialogbuilder.setPositiveButton("确定", click1);
alertdialogbuilder.setNegativeButton("取消", click2);
AlertDialog alertdialog1=alertdialogbuilder.create();
alertdialog1.show();
}
//是否注册,查询用户表是否为空
public void if_log() {
dbHelper = new MyDatabaseHelper(this, "usersBDD", null, 1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
int amount=0;
Cursor c = db.rawQuery("select * from usersBD", null);
amount=c.getCount();
if(amount==1){
ck=1;
}
c.close();
db.close();
}
}
登录进去后,进入目录一,用户可以在此添加密码,可以看到我已经添加了很多密码了。
代码如下:
package mountain_hua.pwd;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
/**
* Created by dhs on 2018/3/13.
*/
public class menu1 extends AppCompatActivity {
private MyDatabaseHelper dbHelper;
String rr;
ArrayList pd=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu1);
pd.add("这里是您的私人密码小本本哦");
query2();
//适配器
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
menu1.this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
pd
);
//
ListView listView= (ListView) findViewById(R.id.listview1);
listView.setAdapter(arrayAdapter);
//监听
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//点击后的操作
if(position!=0) {
rr = arrayAdapter.getItem(position);
Intent intent = new Intent();
intent.setClass(menu1.this, menu2_1.class);
intent.putExtra("cc", rr);//传出adr
intent.putExtra("pp",String.valueOf(position));//传出位置0,1,2.。。
startActivity(intent);
Toast.makeText(menu1.this, arrayAdapter.getItem(position),
Toast.LENGTH_SHORT).show();
}
}
});
//添加按钮
Button b3=(Button)findViewById(R.id.button8);
b3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
Intent intent = new Intent();
intent.setClass(menu1.this,menu2.class);
startActivity(intent);
}
} );
}
public void query2(){
dbHelper = new MyDatabaseHelper(menu1.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from pwdsBD", null);
//调用moveToFirst()将数据指针移动到第一行的位置。
while (cursor.moveToNext()) {
String adrs = cursor.getString(2);//获取第3列的值adr,第一列的索引从0开始
int id=cursor.getInt(0);
if (id!=0) {
pd.add(adrs);
}
}
cursor.close();
db.close();
}
//刷新listview
@Override
protected void onResume() {
super.onResume();
pd.clear();
pd.add("这里是您的私人密码小本本哦");
query2();
//适配器
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
menu1.this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
pd
);
//
ListView listView= (ListView) findViewById(R.id.listview1);
listView.setAdapter(arrayAdapter);
}
}
然后可以添加密码:
点击添加密码进入添加密码页面,代码如下:
package mountain_hua.pwd;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* Created by dhs on 2018/3/14.
*/
public class menu2 extends AppCompatActivity {
private MyDatabaseHelper pwdsDB;
private String gadr;
private String gname;
private String gpwd;
private String gdesc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu2);
//注册监听
//确认按钮
Button b3=(Button)findViewById(R.id.button6);
b3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
gadr = ((EditText) findViewById(R.id.editText3)).getText().toString();
gname = ((EditText) findViewById(R.id.editText5)).getText().toString();
gpwd = ((EditText) findViewById(R.id.editText6)).getText().toString();
gdesc = ((EditText) findViewById(R.id.editText7)).getText().toString();
if(feikong()==1)//判断用户名密码非空
{
pwdsDB = new MyDatabaseHelper(menu2.this,"usersBDD",null,1);
SQLiteDatabase db = pwdsDB.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("adr", gadr);
values.put("name", gname);
values.put("pwd", gpwd);
values.put("desc", gdesc);
//insert()方法中第一个参数是表名,第二个参数是表示给表中未指定数据的自动赋值为NULL。第三个参数是一个ContentValues对象
db.insert("pwdsBD",null,values);
Toast.makeText(menu2.this,"添加成功",Toast.LENGTH_SHORT).show();
finish();
}
}
} );
//取消按钮
Button b4=(Button)findViewById(R.id.button10);
b4.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
finish();
}
} );
}
//name和pwd非空算法
public int feikong(){
int i=1;
if(gname.length()==0){
i=0;
Toast.makeText(menu2.this,"用户名不能为空",Toast.LENGTH_SHORT).show();
}
else
if(gpwd.length()==0){
i=0;
Toast.makeText(menu2.this,"密码不能为空",Toast.LENGTH_SHORT).show();
}
return i;
}
}
添加成功后,返回主页面就可以看到刚刚添加的密码。点击刚刚添加的密码可以进入详细信息页面,用textview.setKeyListener(null)方法设置密码不可修改,我加密了密码的中间字母,只能看到首字母和末尾的字母,在次可以选择选择修改(查看)或者删除,均需输入二级密码。
代码如下:
package mountain_hua.pwd;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.ArrayList;
import static android.R.id.input;
/**
* Created by dhs on 2018/3/20.
*/
public class menu2_1 extends AppCompatActivity{
private MyDatabaseHelper dbHelper;
private String gadr;//传入adr
private String ard;
private String name;
private String pwd;
private String desc;
private String gpwd2;
private String pos;
private int ppp;
int pp;
private ArrayList idList=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu2);
gadr=getIntent().getStringExtra("cc");//传入adr
pos=getIntent().getStringExtra("pp");
pp=Integer.valueOf(pos)-1;//传入位置
query323();
query3();
EditText ed3=(EditText)findViewById(R.id.editText3);
ed3.setText(ard);
ed3.setKeyListener(null);
EditText ed5=(EditText)findViewById(R.id.editText5);
ed5.setText(name);
ed5.setKeyListener(null);
EditText ed6=(EditText)findViewById(R.id.editText6);
ed6.setText(jiami(pwd));
ed6.setKeyListener(null);
EditText ed7=(EditText)findViewById(R.id.editText7);
ed7.setText(desc);
ed7.setKeyListener(null);
//查看明文密码
Button b6=(Button)findViewById(R.id.button6);
b6.setText("查看/修改");
b6.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
query2();
dialog();
}
} );
//删除按钮
Button b10=(Button)findViewById(R.id.button10);
b10.setText("删除此密码");
b10.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
query2();
dialog2();
}
} );
}
//查询
public void query3(){
dbHelper = new MyDatabaseHelper(menu2_1.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from pwdsBD", null);
//调用moveToFirst()将数据指针移动到第一行的位置。
while (cursor.moveToNext()) {
pwd= cursor.getString(3);//获取第3列的值,第一列的索引从0开始
name=cursor.getString(1);
ard=cursor.getString(2);
desc=cursor.getString(4);
ppp=cursor.getInt(0);//获取自增的ID
if(idList.get(pp).equals(ppp)){
break;
}
}
cursor.close();
db.close();
}
//查看和修改的对话框
public void dialog(){
final EditText et = new EditText(this);
final AlertDialog dialog = new AlertDialog.Builder(menu2_1.this)
.setTitle("请输入二级密码")
.setPositiveButton("确定", null)
.setView(et)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
//这里必须要先调show()方法,后面的getButton才有效
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = et.getText().toString();
if (!input.equals(gpwd2)) {
Toast.makeText(getApplicationContext(), "二级密码不对!" , Toast.LENGTH_SHORT).show();
return;
}
else {
Intent intent = new Intent();
intent.putExtra("dd", gadr);
intent.putExtra("po", String.valueOf(idList.get(pp)));
intent.setClass(menu2_1.this, menu2_2.class);
startActivity(intent);
finish();
}
dialog.dismiss();
}
});
}
//删除的对话框
public void dialog2(){
final EditText et = new EditText(this);
final AlertDialog dialog = new AlertDialog.Builder(menu2_1.this)
.setTitle("请输入二级密码")
.setPositiveButton("确认删除", null)
.setView(et)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
//这里必须要先调show()方法,后面的getButton才有效
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = et.getText().toString();
if (!input.equals(gpwd2)) {
Toast.makeText(getApplicationContext(), "二级密码不对!" , Toast.LENGTH_SHORT).show();
return;
}
else {
//删除表操作
query4();
finish();
Toast.makeText(getApplicationContext(), "删除成功!" , Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
}
});
}
//得到二级密码
public String query2(){
dbHelper = new MyDatabaseHelper(menu2_1.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("usersBD",null,null,null,null,null,null);
//调用moveToFirst()将数据指针移动到第一行的位置。
if (cursor.moveToFirst()){
do {
//然后通过Cursor的getColumnIndex()获取某一列中所对应的位置的索引
gpwd2 = cursor.getString(cursor.getColumnIndex("pwd2"));
}while(cursor.moveToNext());
}
cursor.close();
return gpwd2;
}
//删除表
public void query4(){
dbHelper = new MyDatabaseHelper(menu2_1.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("pwdsBD","id=?",new String[] {String.valueOf(idList.get(pp))});
query32();
db.close();
}
//创建数组
public void query323() {
dbHelper = new MyDatabaseHelper(menu2_1.this, "usersBDD", null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("pwdsBD", null, null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while(cursor.moveToNext())
idList.add(cursor.getInt(0));
}
cursor.close();
db.close();
}
//修改ID,用于删除后执行
public void query32(){
dbHelper = new MyDatabaseHelper(menu2_1.this,"usersBDD",null,1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("pwdsBD",null,null,null,null,null,null);
if(cursor != null && cursor.getCount()>0){
idList.removeAll(idList);
while(cursor.moveToNext())
idList.add(cursor.getString(0));
}
cursor.close();
db.close();
}
//加密小算法
public String jiami(String ss){
int len=ss.length();
String after;
String aa="*";
after = ss.charAt(0)+aa;
if(ss.length()>=3) {
for (int i = 1; i < len - 2; i++) {
after = after + aa;
}
after = after + ss.charAt(len - 1);
}
return after;
}
}
然后是修改页面:此时可以看到全部密码信息,并且能进行修改。
代码如下:
package mountain_hua.pwd;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* Created by dhs on 2018/3/20.
*/
public class menu2_2 extends AppCompatActivity {
private MyDatabaseHelper pwdsDB;
private String ggadr;
private String gadr;
private String gname;
private String gpwd;
private String gdesc;
private String ard;
private String name;
private String pwd;
private String desc;
private String pos;
private int poss;
private int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu2);
ggadr=getIntent().getStringExtra("dd");//传入adr
pos=getIntent().getStringExtra("po");
poss=Integer.valueOf(pos);
query3();
EditText ed3=(EditText)findViewById(R.id.editText3);
ed3.setText(ard);
EditText ed5=(EditText)findViewById(R.id.editText5);
ed5.setText(name);
EditText ed6=(EditText)findViewById(R.id.editText6);
ed6.setText(pwd);
EditText ed7=(EditText)findViewById(R.id.editText7);
ed7.setText(desc);
//注册监听
//确认按钮
Button b3=(Button)findViewById(R.id.button6);
b3.setText("确认修改");
b3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容,应该为更新表
gadr = ((EditText) findViewById(R.id.editText3)).getText().toString();
gname = ((EditText) findViewById(R.id.editText5)).getText().toString();
gpwd = ((EditText) findViewById(R.id.editText6)).getText().toString();
gdesc = ((EditText) findViewById(R.id.editText7)).getText().toString();
if(feikong()==1) {
pwdsDB = new MyDatabaseHelper(menu2_2.this, "usersBDD", null, 1);
SQLiteDatabase db = pwdsDB.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("adr", gadr);
values.put("name", gname);
values.put("pwd", gpwd);
values.put("desc", gdesc);
db.update("pwdsBD", values, "id=?", new String[]{String.valueOf(poss)});
if (gname.equals(name) & (gadr.equals(ard)) && gpwd.equals(pwd) & gdesc.equals(desc)) {
Toast.makeText(menu2_2.this, "您未作出修改", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(menu2_2.this, "修改成功", Toast.LENGTH_SHORT).show();
}
finish();
}
}
} );
//取消按钮
Button b4=(Button)findViewById(R.id.button10);
b4.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {//内容
finish();
}
} );
}
public void query3() {
pwdsDB = new MyDatabaseHelper(menu2_2.this, "usersBDD", null, 1);
SQLiteDatabase db = pwdsDB.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from pwdsBD", null);
//调用moveToFirst()将数据指针移动到第一行的位置。
while (cursor.moveToNext()) {
pwd = cursor.getString(3);//获取第3列的值,第一列的索引从0开始
name = cursor.getString(1);
ard = cursor.getString(2);
desc = cursor.getString(4);
id=cursor.getInt(0);
if (id==poss){
break;
}
}
}
//name和pwd非空算法
public int feikong(){
int i=1;
if(gname.length()==0){
i=0;
Toast.makeText(menu2_2.this,"用户名不能为空",Toast.LENGTH_SHORT).show();
}
else
if(gpwd.length()==0){
i=0;
Toast.makeText(menu2_2.this,"密码不能为空",Toast.LENGTH_SHORT).show();
}
return i;
}
}
期间遇到了一个小问题,就是在数据库自增段进行删除时,比如1,2,3,4把其中的3删除了,变为1,2,4;然后根据listview来查询出现了问题,本来想查询删除后的4号,可是listview上还是3号,于是我增加了一个Arraylist来保存删除后的1,2,4。每进行一次删除操作,就重新把数据库的自增段遍历给Arraylist,通过Arraylist解决了问题。