0

我正在使用这个-> 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());
}

列表视图似乎是空的,因为我知道没有插入数据。任何帮助表示赞赏。谢谢。

编辑:我的下载类:

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();
4

2 回答 2

1

您永远不会将新DownloadClass对象添加到数组中。如果您要使用数组而不是数组ArrayList(老实说,这可能是您想要的),您还需要分配大小。

当您遍历循环时,您需要将新对象分配给数组中的一个位置。

data[i] = new DownloadClass(...);

于 2012-07-12T12:52:43.030 回答
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 index.. 而不是 1.. 开始你的循环

更新:

首先,您正在动态创建对象数组。所以你必须知道数组的大小。

其次,您的循环从索引 1 开始,它应该是 0。

于 2012-07-12T12:56:05.597 回答