我在从表中获取不同的值时遇到问题。我创建了一个返回字符串数组的方法,如下所示:
public String[] getUniversityNames() {
String[] university = new String[0];
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(true, TABLE_QUESTIONS,
new String[] { KEY_UNIVERSITY }, null, null, null, null, null,
null);
int i = 0;
if (cursor.moveToFirst()) {
do {
university[i] = cursor.getString(0); //Error occurs here @ Line 119
i++;
} while (cursor.moveToNext());
} else {
Log.w("AQUEST", "No Data Found.");
}
cursor.close();
return university;
}
并给我在logcat中的以下错误:
E/AndroidRuntime(11100): FATAL EXCEPTION: main
E/AndroidRuntime(11100): java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
E/AndroidRuntime(11100): at com.anisTronic.quest.database.DatabaseHandler.getUniversityNames(DatabaseHandler.java:119)
我的桌子上有19行。
请帮助我。我感谢您的帮助。
最佳答案
您的错误可能是:
String[] university = new String[0];
...
university
是具有0个元素的数组。然后:
university[i] = cursor.getString(0); //Error occurs here @ Line 119
您尝试添加一个元素。您不能,因为
university
无法保存元素,因此是异常。您可以返回某种Collection
或将其收集到Collection
中,然后再将其更改为数组。