Android SqlLite的简单实用

本文介绍了一个简单的安卓应用中登录和注册功能的实现过程,包括数据库创建、用户信息存储及验证等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先写一个MySqlHelper类,用于创建数据库

 

public class MySqlHelper extends SQLiteOpenHelper{
    public MySqlHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table if not exists user(_id Integer primary key autoincrement ,uname varchar(20),upass varchar(20))";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

2.写个Dialog的页面布局zhuce_item.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/zhucename"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint=" 请输入用户名"
        />
    <EditText
        android:id="@+id/zhucepass"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint=" 请输入密码"
        />

</LinearLayout>

3.LoginActivity页面的代码:

 

 

public class LoginActivity extends AppCompatActivity {

    private EditText editName;
    private EditText editPass;
    private Button login;
    private Button zhuce;
    private Button update;
    private MySqlHelper helper;
    private SQLiteDatabase read;
    private SQLiteDatabase write;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        initView();

        initData();
    }
    /*获取控件,创建数据库对象*/
    private void initView() {
        editName = (EditText) findViewById(R.id.name);
        editPass = (EditText) findViewById(R.id.pass);
        login = (Button) findViewById(R.id.login);
        zhuce = (Button) findViewById(R.id.zhuce);
        update = (Button) findViewById(R.id.update);
        //数据库helper对象
        helper = new MySqlHelper(LoginActivity.this, "user", null, 2);
        //读取数据库数据的对象
        read = helper.getReadableDatabase();
        //写入数据库数据的对象
        write = helper.getWritableDatabase();
    }
    private void initData() {
        //登陆点击事件
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(LoginActivity.this,"登录",Toast.LENGTH_SHORT).show();
                String name = editName.getText().toString();
                String pass = editPass.getText().toString();
                //查询语句
                String sql = "select * from user where uname=? and upass=?";
                Cursor query = read.rawQuery(sql,new String[]{name,pass});
                if(query.moveToNext()==true){
                    Toast.makeText(LoginActivity.this,"登陆成功",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(LoginActivity.this,"账号或密码错误,请注册",Toast.LENGTH_SHORT).show();
                }

            }
        });

        zhuce.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(LoginActivity.this,"注册",Toast.LENGTH_SHORT).show();

                AlertDialog.Builder dialog = new AlertDialog.Builder(LoginActivity.this);
                final View view1 = LayoutInflater.from(LoginActivity.this).inflate(R.layout.zhuce_item,null);

                dialog.setView(view1);
                dialog.setTitle("注册页面")
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        EditText newname = (EditText) view1.findViewById(R.id.zhucename);
                        EditText newpass = (EditText) view1.findViewById(R.id.zhucepass);
                        String name = newname.getText().toString();
                        String pass = newpass.getText().toString();
                        //添加语句
                        String sql = "insert into user(uname,upass) values(?,?)";
                        write.execSQL(sql,new String[]{name,pass});
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .show();
            }
        });

        update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(LoginActivity.this,"忘记密码",Toast.LENGTH_SHORT).show();
                AlertDialog.Builder dialog = new AlertDialog.Builder(LoginActivity.this);
                //引入Dialog的布局
                final View view1 = LayoutInflater.from(LoginActivity.this).inflate(R.layout.zhuce_item,null);
                dialog.setView(view1);
                dialog.setTitle("修改密码")
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        EditText newname = (EditText) view1.findViewById(R.id.zhucename);
                        EditText newpass = (EditText) view1.findViewById(R.id.zhucepass);
                        String name = newname.getText().toString();
                        String pass = newpass.getText().toString();
                        //修改语句
                        String sql1 = "update user set uname=?,upass=?where uname=?";
                        write.execSQL(sql1,new String[]{name,pass,name});
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .show();
            }
        });
    }
}






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值