2014-03-05 88 views
0

編輯,更多說明。 嗨,對不起,模糊的問題,創建一個新的哈希表的問題,我的意思是添加新行。如何在哈希表的Arraylist中爲for循環生成新的哈希表

以前,如果我知道我想添加多少行,例如我想添加3行,我將聲明3 hashmap並輸入如下所示的值。但是現在,我想做一些計算,並根據計算結果生成x數量的行,如圖所示。我不知道如何在for循環中聲明並創建一個新的行/ hashmap。

protected void populateList(int i,Double profit,Double balance, Double revenue) 
{ 
    list = new ArrayList<HashMap>(); 
    HashMap row1 = new HashMap(); 
    row1.put(FIRST_COLUMN,i); 
    row1.put(SECOND_COLUMN, balance); 
    list.add(row1); 

    HashMap row2 = new HashMap(); 
    row2.put(FIRST_COLUMN,i); 
    row2.put(SECOND_COLUMN, balance); 
    list.add(row2); 

    HashMap row3 = new HashMap(); 
    row3.put(FIRST_COLUMN,i); 
    row3.put(SECOND_COLUMN, balance); 
    list.add(row3); 
} 

我想創建一個多列的列表視圖和動態當你點擊一個按鈕,生產出通過計算行。所以我創建了一個hashtable(單個哈希錶行)的數組列表,但是我在創建一個新的哈希表時遇到了問題。

的onClick

public void onClick(View view) { 
    for (int i=1; i <= count; i++) { 
     // figure to be input into column 
     Double profit = totalsum - cost; 
     Double balance = totalsum - profit - cost; 
     Double revenue = total sum; 

     populateList(i,profit,balance,revenue); 
    } 
} 

populateList方法

protected void populateList(int i,Double profit,Double balance, Double revenue) 
{ 
    list = new ArrayList<HashMap>(); 
    HashMap temp = new HashMap(); 
    temp.put(FIRST_COLUMN,i); 
    temp.put(SECOND_COLUMN, balance); 
    temp.put(THIRD_COLUMN, profit); 
    temp.put(FOURTH_COLUMN, revenue); 
    list.add(temp); 
} 
+0

有什麼問題? – Blackbelt

+0

'我有問題創建一個新的哈希表'你有什麼問題? –

+0

在'populateList()':'list = new ArrayList ();' - 您爲每一行創建一個新的空列表,丟棄任何以前的條目。創建列表*一次*然後將這些'HashMap'添加到它。 – JimmyB

回答

0

我猜你想要做的是

public void onClick(View view) { 
    List<HashMap> list = new ArrayList<HashMap>(); 
    for (int i=1; i <= count; i++) 
    { 
     // figure to be input into column 
     Double profit = totalsum - cost; 
     Double balance = totalsum - profit - cost; 
     Double revenue = total sum; 

     list.add(populatelist(i,profit,balance,revenue)); 


    } 
} 

protected HashMap populatelist(int i,Double profit,Double balance, Double revenue) { 
    HashMap temp = new HashMap(); 
    temp.put(FIRST_COLUMN,i); 
    temp.put(SECOND_COLUMN, balance); 
    temp.put(THIRD_COLUMN, profit); 
    temp.put(FOURTH_COLUMN, revenue); 
    return temp; 

} 

但是很難與你給說什麼。

+0

'Void'和'return'? –

+2

讓我們不要太神祕!對於'populateList()'的返回類型應該是'HashMap' ...我會說一個簡單的監督。 –

+0

這是他試圖做的複製/粘貼提示。沒有重新檢查。我的錯。 – Thomas