Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中搜索记录并从数据库中检索_Android_Sqlite - Fatal编程技术网

在Android中搜索记录并从数据库中检索

在Android中搜索记录并从数据库中检索,android,sqlite,Android,Sqlite,在我的活动中,我有editText的用户名、姓氏、姓氏和电子邮件地址。当用户输入现有用户名时,他可以通过单击搜索按钮进行搜索,用户拥有的数据将显示在编辑文本中 MainActivity.java btn_Search.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String searchableUser = txt_User.getTex

在我的活动中,我有editText的用户名、姓氏、姓氏和电子邮件地址。当用户输入现有用户名时,他可以通过单击搜索按钮进行搜索,用户拥有的数据将显示在编辑文本中

MainActivity.java

btn_Search.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        String searchableUser = txt_User.getText().toString();

        ConsUserRegistration consUserRegistration = db.searchUser(searchableUser);

        String searchUser = consUserRegistration.getUser().toString();
        String searchFirst = consUserRegistration.getFirstName().toString();
        String searchLast = consUserRegistration.getLastName().toString();
        String searchEmail = consUserRegistration.getEmail().toString();

        txt_User.setText(searchUser);
        txt_First.setText(searchFirst);
        txt_Last.setText(searchLast);
        txt_Email.setText(searchEmail);             
    }
});
DatabaseHandler.java

public ConsUserRegistration searchUser(String username){

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(Constants.TABLE_USER, new String[] {Constants.KEY_USER, Constants.KEY_FIRST, 
            Constants.KEY_LAST, Constants.KEY_EMAIL}, Constants.KEY_USER + " =? ", 
            new String[] { String.valueOf(username) }, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    ConsUserRegistration search = new ConsUserRegistration (cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3));

    return search;

}
但是,当用户单击搜索按钮并且没有输入用户名EditText中的任何字符时,我在DatabaseHandler的第行中得到一个CursorIndexOutOfBoundsException错误:ConsUserRegistration Search=new ConsUserRegistration cursor.getString0,cursor.getString1,cursor.getString2,cursor.getString3

此外,由于数据库崩溃,我无法从中检索数据。

更改

db.searchUser(searchableUser);
ConsUserRegistration consUserRegistration = new ConsUserRegistration();


Button按钮\u SearchbuttonfindViewByIdr.I'd.ItsidYourXML


按钮可能需要声明或定义,需要查看整个代码,对不起。刚刚编辑了我的问题NullPointerExceptions在哪一行代码?请参阅日志猫。您建议的代码正在运行,但是,当我没有输入用户名时,我在DatabaseHandler的第行中获得了CursorindexOutOfBoundsException:conUserRegistration search=new conUserRegistration cursor.getString0,cursor.getString1,cursor.getString2,cursor.getString3;
ConsUserRegistration consUserRegistration = db.searchUser(searchableUser);