从表中获取不同的值时遇到问题。我创建了一个返回字符串数组的方法,如下所示:
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行。
请帮帮我。感谢您的帮助。
答案 0 :(得分:1)
您的错误可能是:
String[] university = new String[0];
...
university
是一个包含0个元素的数组。
然后:
university[i] = cursor.getString(0); //Error occurs here @ Line 119
您尝试添加元素。你不能,因为university
不能容纳一个元素,因此是例外。在将其更改为数组之前,您可以返回某种Collection
或在Collection
中收集它们。
答案 1 :(得分:0)
根据您的初始化university
String[] university = new String[0];
为空
尝试使用ArrayList<String>
http://developer.android.com/reference/java/util/ArrayList.html