我想验证用户名是否已经存在,所以代码如下所示,我将此代码放在 protected void onCreate(Bundle savedInstanceState){//将此代码放在此处,我是否正确?}
public boolean verification(String _username) {
Cursor c = db.rawQuery( "SELECT COUNT(*) FROM " + "LOGIN" + " WHERE " + "USERNAME" + " = ?", new String[] {_username});
boolean exists = c.moveToFirst();
c.close();
return exists;
}
我想在用户点击注册按钮时检查一下,所以将代码如下所示放在 public void onClick(View v){//将此代码放在此处,我纠正了吗?}
// check if user is exists?
if(verification(userName) == true){
Toast.makeText(getApplicationContext(), "Username already exists", Toast.LENGTH_LONG).show();
return;
}
当我运行应用程序时,单击注册按钮,应用程序强制关闭。 我得到了如下所示的logcat:
任何想法? 或者如何确保用户名是唯一的?对不起,我还是个新手。
修改 我的代码如下所示,问题解决了:
if(loginDataBaseAdapter.verification(userName) == false){
Toast.makeText(getApplicationContext(), "Username already exists", Toast.LENGTH_LONG).show();
return;
}
但它无法验证用户我是不是真或假,任何想法?
答案 0 :(得分:3)
这是一个NPE案例,由第87行引起。如上所述,您的第87行是
Cursor c = db.rawQuery( "SELECT COUNT(*) FROM " + "LOGIN" + " WHERE " + "USERNAME" + " = ?", new String[] {_username});
因此,您正在尝试对null
的引用进行操作,因此发生此异常。这里变量是db
。
在执行查询之前,您应该进行空检查:
if(null == db){
// Initialize your db
}
另外,以下链接可以帮助您了解android中的数据库 http://www.vogella.com/articles/AndroidSQLite/article.html
答案 1 :(得分:2)
SignUPActivity的第87行存在NullPointerException。这就是崩溃的原因。你应该检查一下这行。