Java android中如何将单行数据存储到sqlite数据库的字符串数组中

Java android中如何将单行数据存储到sqlite数据库的字符串数组中,java,android,arrays,string,sqlite,Java,Android,Arrays,String,Sqlite,我通过传递特定行的id调用了函数returnCurrentNameById()。但它给出了一个错误 String[] s1; public String[] returnCurrentNameById(int k) throws SQLException{ String[] columns = new String[]{ KEY_ID1, KEY_NAME, Key_DOB, KEY_AGE, KEY_PHONE_NO, Key_EXPERIENCE, KEY_EMAIL, KE

我通过传递特定行的
id
调用了函数
returnCurrentNameById()
。但它给出了一个错误

String[] s1;

public String[] returnCurrentNameById(int k) throws SQLException{  

    String[] columns = new String[]{ KEY_ID1, KEY_NAME, Key_DOB, KEY_AGE, KEY_PHONE_NO, Key_EXPERIENCE, KEY_EMAIL, KEY_STATUS, KEY_STATUS};
    SQLiteDatabase db3 = this.getReadableDatabase();
    Cursor c = db3.query(DATA_BASE_TABLE_NAME1, columns, KEY_ID1 + "=" + k, null, null, null, null);

    if (c != null){
        c.moveToFirst();
        for(int i = 0; i<=8; i++){
            s1[i] = c.getString(i);
        }
        return s1;
    }
    return null;
}
替换

 Cursor c = db3.query(DATA_BASE_TABLE_NAME1, columns, KEY_ID1 + "=" + k, null, null, null, null);


您尚未初始化
s1
数组

使用

分配一个包含9个元素的数组


还要检查
moveToFirst()
的返回值,以便在查询不返回任何行时不会出现异常。

它抛出了什么错误?在标题中显示您的
logcat
,您声明应存储字符串,但代码似乎只读取数据库。你能帮我修一下吗?对不起,问题仍然存在,它会给我时间﹕ 致命异常:main java.lang.IllegalStateException:无法执行活动的方法“IllegalStateException:无法执行活动的方法”可能是由于许多原因造成的。请在DataBaseSQL.class的第209行发布日志。该类为空。检查它是什么Hanks先生,问题是字符串s1[],我没有用新运算符初始化它。因此,会发生NullPointerException
 Cursor c = db3.query(DATA_BASE_TABLE_NAME1, columns, KEY_ID1 + "=" + k, null, null, null, null);
 Cursor c = db3.query(DATA_BASE_TABLE_NAME1, columns, KEY_ID1 + " = ?", new String[]{String.valueOf(k)}, null, null, null);
s1 = new String[9];