在循环中的SQLite中添加数组

时间:2012-07-12 12:51:15

标签: android android-listview

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

2 个答案:

答案 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。