我正在使用这个 - > http://www.ezzylearning.com/tutorial.aspx?tid=1763429创建我自己的自定义列表视图。
对于我的项目,我使用while循环来获取数据并获取数据。
原始代码是:
DownloadClass data[] = new DownloadClass[] {
new DownloadClass("test", "test"),
new DownloadClass("test", "Sunny")
};
但是我的情况......
DownloadClass data[] = new DownloadClass[] {};
SQLFunctions entry = new SQLFunctions(this);
entry.open();
highestID = entry.getHighestId();
for (int l = 1; l < highestID; l++) {
Long longVal = Long.valueOf(l);
new DownloadClass(entry.getName(longVal).toString(), entry.getURL(longVal).toString());
}
listview似乎是空的,因为我知道没有插入数据。任何帮助表示赞赏。感谢。
编辑: 我的DownloadClass:
public class DownloadClass {
public String name;
public String url;
public DownloadClass(){
super();
}
public DownloadClass(String name, String url) {
super();
this.name = name;
this.url = url;
}
}
我的新活动
DownloadClass data[] = new DownloadClass[]; // need to work on this
SQLFunctions entry = new SQLFunctions(this);
entry.open();
highestID = entry.getHighestId();
Log.e("HIGHEST ID", highestID.toString());
if (highestID > 1) {
for (int l = 0; l < highestID; l++) {
Long longVal = Long.valueOf(l);
//String name = entry.getName(longVal);
//String id = entry.getURL(longVal);
//Log.e("NAME", name + " - " + id);
data[l] = new DownloadClass(entry.getName(longVal).toString(),entry.getURL(longVal).toString());
}
}
entry.close();
答案 0 :(得分:1)
您不会将新的DownloadClass
对象添加到阵列中。如果您打算使用数组而不是ArrayList
,那么您还需要分配大小(说实话,这可能就是您想要的)。
当您遍历循环时,您需要将新对象分配给数组中的位置。
data[i] = new DownloadClass(...);
答案 1 :(得分:0)
试试这个,让我知道发生了什么......
DownloadClass data[];
SQLFunctions entry = new SQLFunctions(this);
entry.open();
highestID = entry.getHighestId();
data[] = new DownloadClass[highestID];
for (int l = 0; l < highestID; l++) {
Long longVal = Long.valueOf(l);
data[i] = new DownloadClass(entry.getName(longVal).toString(), entry.getURL(longVal).toString());
}
也用0索引开始你的循环..而不是1 ..
<强>更新强>
首先,您要动态创建对象数组。所以你必须知道数组的大小。
第二个循环从索引1开始,它应该是0。