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

データが挿入されていないことがわかっているため、リストビューは空のように見えます。どんな助けでも大歓迎です。ありがとう。

編集:私の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();
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());
}

また、1ではなく0インデックスでループを開始します。

アップデート:

まず、オブジェクトの配列を動的に作成しています。したがって、配列のサイズを知る必要があります。

次に、ループはインデックス1で始まり、0である必要があります。

于 2012-07-12T12:56:05.597 に答える