Sylvanas0101 2017-11-29 12:10 采纳率: 40%
浏览 1901
已采纳

用SQLite做个一个简单的登陆注册功能,在注册时崩溃了

用SQLite做个一个简单的登陆注册功能,可以运行,然后加了一个注册是检查用户名是否已存在的函数,点注册按钮时就崩溃了,不知道原因
代码在下面,求解答啊

 package com.sylvanas.qq;

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.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class RegisterActivity extends AppCompatActivity{
    private EditText R_accountEdit;
    private EditText R_passwordEdit;
    private Button regster;
    private MyDatabaseHelper dbHelper;
    private SQLiteDatabase db;


    @Override
    protected void onCreate( Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        //Toolbar
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_register);
        setSupportActionBar(toolbar);

        R_accountEdit = (EditText) findViewById(R.id.register_account);
        R_passwordEdit = (EditText) findViewById(R.id.register_password);
        regster = (Button) findViewById(R.id.register);

        dbHelper = new MyDatabaseHelper(RegisterActivity.this,"USER.db",null,2);
        db = dbHelper.getWritableDatabase();

        regster.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String R_account = R_accountEdit.getText().toString();
                String R_password = R_passwordEdit.getText().toString();

                if(CheckIsDataAlreadyInDBorNot(R_account)){
                    Toast.makeText(RegisterActivity.this,"该用户名已被注册",Toast.LENGTH_SHORT).show();
                }
                db.execSQL("insert into Login(account,password) values(?,?)",new String[]{R_account,R_password});
                Toast.makeText(RegisterActivity.this, "注册成功!", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
    public boolean CheckIsDataAlreadyInDBorNot(String value){
        db = dbHelper.getWritableDatabase();
        String Query = "Select * from userData where name =?";
        Cursor cursor = db.rawQuery(Query,new String[] { value });
        if (cursor.getCount() > 0){
            cursor.close();
            return true;
        }
        else {
            cursor.close();
            return false;
        }
    }
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2017-11-29 15:55
    关注

    http://download.csdn.net/download/a591326912/9514651
    采纳本回答,可以代下载。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用