2015-01-03 59 views
0

我想保存在一個ArrayList的一些值,但不知何故,他們都得到只有1 ArrayList中(200)值結束了覆蓋被「覆蓋」。避免該值ArrayList中

final String[] titles = new String[urls.length]; 

    for (int i = 0; i < titles.length; i++){ 
     ArrayList<Integer> valuesList = new ArrayList<Integer>(); 
      valuesList.add(page.getTopicCount()); // returns 4 values (50,100,150,200) 
       System.out.println("Element: " + valuesList.toString()); 
        // returns only value 200 
    } 

代碼page.getTopicCount()在1號線(50 100 150 200)返回的4個值,只有最後一個(200)被添加到ArrayList,但我試圖找到一種方法來拯救他們所有4分開。

我有什麼選擇? (SharedPreferences,保存到文件,我必須建立另一個循環)?

我已經做了一些研究,並最終在this網頁,但我不`噸知道這是否會工作。

PS:所述4個值是不斷變化的,因此它是沒有選擇將其添加爲:

valuesList.add("50"); 
valuesList.add("100"); 
etc.. 

編輯: getTopicCount是SAXParser類的一部分,參見下文的代碼片斷:

public void endElement(final String uri, final String localName, final String qName) 
     throws SAXException { 
// 

} else if (localName.equals("topiccount")) { 
     in_topiccount = true; 
     sb = new StringBuilder(); 
    } 
// 

    else if (localName.equals("topiccount")) { 
     in_topiccount = false; 
     forumPage.setTopicCount(Integer.parseInt(sb.toString())); //returns 50 100 150 200 
     sb = null; 
    } 
// 
} 
+1

什麼'page.getTopicCount()'和返回類型? – SorryForMyEnglish

+0

嗨,看看我的編輯 – Bjorn

回答

2

在for循環中,要初始化的ValuesList中的ArrayList。所以每次迭代,你創建一個新的ArrayList並添加一個元素,然後丟棄它。因此,最後你只能引用你創建的最後一個ArrayList,它只能有200個。

想必你想要做的是一樣的東西:

ArrayList<Integer> valuesList = new ArrayList<Integer>(); 
for (int i = 0; i < titles.length; i++){ 
      valuesList.add(page.getTopicCount()); // returns 4 values (50,100,150,200) 
    }  
    System.out.println("Element: " + valuesList.toString()); 

編輯:從本質上講,創建ArrayList的一次,然後將元素插入到它在for循環。

+0

嗨拉迪達,已經嘗試過同樣的問題,200只得到補充,休息覆蓋。 – Bjorn

+0

你確定title.length和page.getTopicCount()返回你想要的嗎? http://ideone.com/sNIeSH展示瞭如果這兩個代碼不是一些瘋狂的價值,這個代碼如何工作。 – Bob

+0

這對我來說意味着問題是雙重的; 1:您的for循環不正確。 2:如果像你說的那樣修復for循環仍然給你不正確的輸出,那麼title或者page.getTopicCount()就不會像你想要的那樣工作。 – Bob