2012-07-12 11 views
0

我使用這個 - >http://www.ezzylearning.com/tutorial.aspx?tid=1763429來創建我自己的自定義列表視圖。在SQLite中添加數組雖然循環

對於我的項目,我使用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

你只是把此行DownloadClass數據[] =新DownloadClass [highestID]獲得最高的ID後,它的作品.. – user370305 2012-07-12 13:25:55

回答

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

+0

不要只給他解決方案,告訴他什麼是錯的,以及如何改進。 – 2012-07-12 12:57:09

+0

@Recursed - 正如他想知道的那樣,如何填充對象的數組,然後他卡在它上面。我認爲這兩條線不會混淆他。它發生在開始階段。 – user370305 2012-07-12 12:58:55

+0

是的,但他需要**學**,以便他知道**爲什麼**有問題以及將來如何解決。如果我們只是向人們提供每一個答案,特別是對這些簡單的問題,我們會延續糟糕的編程。人們需要學習不復制和粘貼他們可以抓取的每一塊代碼,而是**從有經驗的程序員那裏學**,並且能夠開發他們自己的代碼。 – 2012-07-12 13:03:10

1

你永遠不加入新DownloadClass對象添加到您的數組。如果你要使用數組而不是ArrayList(說實話可能是你想要的),你還需要分配大小。

在循環遍歷時,需要將新對象分配給數組中的某個位置。

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

+0

我知道。這就是爲什麼我問,我如何將它添加到數組中。 – MrYanDao 2012-07-12 12:53:40

+1

您的循環從1開始,我不確定自己理解,但上面顯示的是您如何添加到數組。這是一個非常簡單的編程概念,並且我建議您在嘗試進一步深入研究之前先閱讀一下陣列。 – 2012-07-12 12:55:15