Android本地多个用户的管理

使用技术点:

  • 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地址点击获取

如果对你有帮助,麻烦关注一波,后期更精彩

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记住我的名字啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值