使用技术点:
- 1.ListView的常规使用
- 2.SQLite的常规使用以及增查删
- 3.自定义接口回调
- 4.popupWindow的正常使用
效果图
接下来看看代码吧:
1.布局相对简单,就不做记录了
2.主要有三个文件数据库、用户的Adapter、登录主界面
其中数据库创建,常规的方法
public class MyDBOpenHelper extends SQLiteOpenHelper {
//数据库名称
private static final String DATABASE_NAME = "billshuai.db";
//数据库版本号
private static final int DATABASE_VERSION = 1;
public MyDBOpenHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
//第一次创建数据库时,数据库SQL语句 添加一个表
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE users(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name varchar(30), password varchar(30))");
}
//数据库版本更改时
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Adapter中可能需要自己创建一个接口回调,然后在点击按钮中调用
//定义一个接口
public interface OnDeleteListener {
public void onDelete(String name);
}
/**
* 自定义控件的自定义事件
*
* @param onDeleteListener 接口类型
*/
public void setOnDeleteListener(OnDeleteListener onDeleteListener) {
this.onDeleteListener = onDeleteListener;
}
/**
* 点击事件
*/
holder.iv_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int posi = Integer.parseInt(v.getTag().toString());
String s= itemsUser.get(posi).toString();
itemsUser.remove(posi);
itemsPass.remove(posi);
notifyDataSetChanged();
if (onDeleteListener != null) {
onDeleteListener.onDelete(s);
}
}
});
登录界面:主要是数据库的操作和一些交互
//数据库初始化
databaseHelper = new MyDBOpenHelper(this, DATABASE_NAME, null,DATABASE_VERSION);
db = databaseHelper.getReadableDatabase();
//数据库删除操作,同时这里调用了自定义接口的回调
usersAdapter.setOnDeleteListener(new UsersAdapter.OnDeleteListener()
{
@Override
public void onDelete(String name) {
//得到可写的SQLiteDatabase对象
SQLiteDatabase dbDelete = databaseHelper.getWritableDatabase();
String whereClauses = "name=?";
String[] whereArgs = {name};
//调用delete方法,删除数据
dbDelete.delete(TABLE_NAME, whereClauses, whereArgs);
dbDelete.close();
}
});
//数据库库增加的操作
db.execSQL("insert into users (name,password) values(?,?)", new String[]{name, pwd});
//数据库查的操作
private void query(SQLiteDatabase db, List<String> userList2, List<String> passList2) {
//查询获得游标
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
//判断游标是否为空
while (cursor.moveToNext()) {
String username = cursor.getString(cursor.getColumnIndex("name"));
userList2.add(username);
//获得密码
String password = cursor.getString(cursor.getColumnIndex("password"));
passList2.add(password);
}
cursor.close();
//关闭数据库
db.close();
}
源代码下载GitHub地址点击获取
如果对你有帮助,麻烦关注一波,后期更精彩