我正在尝试从数据库中填充listview。该数据库有三列row_id,lat和lon。所以我写了两个方法
public String getLat(long l){
.....
}
public String getLon(long l){
.....
}
现在在另一个FragmentAcivity我想通过获取每个row_id的名称和编号来加载listview。那么如何在另一个活动中循环遍历所有row_id。
我试过这个。这是逐个加载row_id
info.open();
ArrayList<String> data = info.getAllData();
String finalR[] = info.returnRows();
for (int i = 0; i < finalR.length; i++) {
long m = Long.parseLong(finalR[i]);
String flat = info.getLat(m);
String flon = info.getLon(m);
Log.i(flat, flon);
}
info.close();
这是returnRows()
public String[] returnRows() {
String[] columns = new String[] { KEY_ROWID, KEY_LAT, KEY_LON };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
String x[] = new String[10000];
int iROW = c.getColumnIndex(KEY_ROWID);
int i = 0;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
x[i] = c.getString(iROW);
i++;
}
return x;
}
但是它给了我numberformatexception无效的长&#34; null&#34;。请帮忙。
答案 0 :(得分:0)
好吧,我终于明白为什么它给了我例外。在上面的代码我有
String x[] = new String[10000];
但数据库并没有包含那么多值。我知道数据库只有两个值,所以我将其更改为2,异常消失了。因此,它似乎不会在遇到空值时停止,而是继续运行,从而产生异常。