2017-02-28 30 views
1

我正在Android應用程序中工作,我正在尋找如何顯示循環後的數組列表結果,我想設置每個值(heure,分鐘...)在另一個列表視圖之後,我與之合作的轉換函數(BCD到Integer)。感謝您的幫助!!如何從數組列表中設置數據

Integer[] array = {heure, minute, seconde, jour, mois, year}; 
    ArrayList<Integer> list = new ArrayList<>(); 
    /*Collections.addAll(list, array);*/ 
    for (int value : list) { 
     temp = value; 
     temp >>= 4; 
     result = temp * 10; 
     temp = value & 0b00001111; 
     result += temp; 
     this.total= result; 
     list.add(this.total); 
    } 
    tvGetdata.setText(list.toString()); 
+1

你能更具體地說明你的實際問題是什麼,或者你卡在哪裏? –

+0

我想顯示在另一個arraylist轉換的每個值 –

回答

0

您有點誤用了這裏的兩個數據結構。

  • Array是項目的固定長度的列表

    • 使用它,只要你有一個固定的一套要處理
  • 一個List值是一個項目列表那將(至少在標準實施中)總是試圖使其能力適應項目數量

    • 使用它時,你需要比一個Array

因此就更有活力,總之,你會通過這些使用切換到結構得到一個更好的結果(你爲什麼SE下文)。

// we exactly know our initial input, so we can use an Array here 
Integer[] array = {heure, minute, seconde, jour, mois, year}; 

// we don't know how many items will go in here, so we use a List for now 
ArrayList<Integer> list = new ArrayList<>(); 

// you can loop over an Array just as over a List 
for (int value : array) { 
    // TODO do your calculations and save them in this.result 

    // the ArrayList provides this neat utility to add an element 
    // it will automatically increase its capacity, if required 
    list.add(this.result); 
} 
tvGetdata.setText(list.toString()); 

當然你也可以替換另一個Listarray變量,從List的元素設置爲List。基本構造是一樣的。

+0

謝謝你,但它顯示空列表,沒有插入值! –

+0

它總是顯示最後的數據(年)而不是6一起 –

+0

不知道什麼可能是錯的,它適用於我。你能說明你是如何實現我的例子的,例如通過編輯你的問題? – Izruo

1

您在空列表上使用了一個foreach。 所以你的代碼會忽略它。 嘗試使用你的陣列。

Integer[] array = {heure, minute, seconde, jour, mois, year}; 
ArrayList<Integer> list = new ArrayList<>(); 
for (int value : array) { 
    temp = value; 
    temp >>= 4; 
    result = temp * 10; 
    temp = value & 0b00001111; 
    result += temp; 
    this.total= result; 
    list.add(this.total); 
} 
tvGetdata.setText(list.toString()); 
+0

是的我得到的結果謝謝你 –