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

用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 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码